1

廃止予定loggerのため、スクリプトで使用しようとしていますが、CentOS 5.8 では機能していないようです。または、ここで何か間違ったことをしています。initlog引数を指定してこのスクリプトを実行しstop、チェックインしました/var/log/messagesが、ログは表示されません。CentOS 6.4 で試してみましたが、問題なく動作します。

ここに私のコードの一部があります:

stop() {
  #----------------------------------------------------------------------
  # logging the stop
  #----------------------------------------------------------------------
  logger -i "Stopping $service" -t "$service" # it seems not be working

  #----------------------------------------------------------------------
  # getting the process PID
  #----------------------------------------------------------------------
  pid_process=`ps -ef | grep "program.jar" | grep -v grep |awk -F' ' '{ print $2 }'`;

  if [ $pid_process ]; then
    action $"Stopping $service: " su - program_deployer -c $shutdown
    RETVAL=$?
  else
    echo "#######################"
    echo "$service is not running"
    echo "#######################"
  fi

  #----------------------------------------------------------------------
  # now, delete the lock file
  #----------------------------------------------------------------------
  rm -f /var/lock/subsys/$service
  echo
}

ここで私の間違いは何ですか?

4

2 に答える 2

1

CentOS 5.8 の私にとっては、上記のように機能しました。すべての*.infoメッセージをに送信します/var/log/messages

これらのメッセージを正しい宛先に送信するように syslog が正しく構成されていること、syslog が実行されていること、stop()関数が実際に呼び出されていることを確認する必要があります。

また、プロセスをシャットダウンするためstop()に a を実行していることがわかるので、root として呼び出されることも想定しています。su - program_deployer

于 2013-03-14T21:42:12.747 に答える
-4

これを試して、

 echo "Stopping $service" | tee -a /var/log/messages

エコー出力は /var/log/messages に追加されます。

于 2013-03-14T18:02:26.613 に答える