web-dev-qa-db-ja.com

CentOS 5.5:シャットダウン時にサービスが停止しない

CentOS5.5でサービスを開始/停止するスクリプト/etc/init.d/xxxを作成しました。

「servicestartxxx」または「servicestopxxx」を呼び出すと、すべて正常に機能します。しかし、マシンを再起動すると、シャットダウン時にサービスが停止しなかったことがログに表示されます。

ただし、起動時に開始されました。

> chkconfig --list xxx 
 xxx 0:off 1:off 2:on 3:on 4:on 5:on 6:off 

私が間違っていること。ありがとうございました。

UPD:スクリプトのヘッダー:

#!/bin/bash
#
# Startup script for the xxx
#
# chkconfig: 345 99 01
# description: This script ...
#

### BEGIN INIT INFO
# Provides: xxx
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Should-Start:
### END INIT INFO
5
Boris

私はLinuxの第一人者ではなく、実際には初心者ですが、シャットダウンスクリプトを実行するには、スタートアップスクリプトの/ var/lock/subsys /フォルダーにロックファイルを作成する必要があります。私はここで答えを見つけました: CentOSフォーラム

スクリプトの例:

#!/bin/sh
# chkconfig: 345 98 11
# description: my auto start-stop script.

echo "my service is doing something :)" >> /root/tempfile
case "$1" in
 start)
  echo "my service started" >> /root/tempfile
  touch /var/lock/subsys/myservice
  echo "OK"
  ;;
 stop)
  echo "my service stoped" >> /root/tempfile
  rm -f /var/lock/subsys/myservice
  echo "OK"
  ;;
esac
10
Bogdan Olteanu

/etc/rc6.d/ディレクトリにリンクを作成して、サーバーのシャットダウン時にそのスクリプトを呼び出す必要がある場合があります。

ls -l /etc/rc5.d/K60nfs

lrwxrwxrwx1ルートルート2010年5月13日/etc/rc5.d/K60nfs->../init.d/nfs

2
shashivm

シャットダウンされていないと言うとき、スクリプトが呼び出されていないのか、それとも想定どおりに実行されていないのかを知っていますか?

他のログに加えて、次のようなことを行う一連のエコーステートメントをstartup/shutdownスクリプトに追加します。

echo "$(date) Entering script" >> ~root/debugging.log
...
echo "$(date) Entering section x" >> ~root/debugging.log

問題を探す場所を突き止めるのに役立つかもしれません

1
Chris

Bogdan Olteanuがあなたのケースの答えかもしれません、それは私のものでした。 CentOSがシャットダウンできるように、ロックファイルには起動スクリプトと同じ名前を付ける必要があります。仮定の場合、startメソッドに次の行を含める必要があります。

touch /var/lock/subsys/xxx

サービスの名前とまったく同じである必要があります(xxx)。

乾杯、CaioToOn!

0
Caio Cunha

スクリプトのヘッダーを投稿していただけませんか?

このようなもの:

#!/bin/sh
#
# /etc/init.d/mysystem
# Subsystem file for "MySystem" server
#
# chkconfig: 2345 95 05 
# description: MySystem server daemon
#
# processname: MySystem
# config: /etc/MySystem/mySystem.conf
# config: /etc/sysconfig/mySystem
# pidfile: /var/run/MySystem.pid
0
Bart De Vos