Linuxサービスが同時に起動して停止するのはなぜですか?

Linuxサービスが同時に起動して停止するのはなぜですか?

CentOSベースのAmazon Linux AMIがあり、起動時に小さなbashスクリプトが呼び出されるカスタムサービスを設定しようとしています(特定の場所に仮想ファイルを作成します)。

私はこのチュートリアルに従いました。https://unix.stackexchange.com/a/20361myscript次に、次のようにカスタムサービススクリプトを作成し、/etc/init.d folder777権限と所有者にrootコピーします。

#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....

# Source function library.
. /etc/init.d/functions

start() {
      echo -n "Starting myscript... "
      su user
      touch /data/startfile
      return 0
}

stop() {
      echo -n "Stopping myscript... "
      su user
      touch /data/stopfile
      return 0
}

case "$1" in 
    start)
       start
       ;;
    stop)
       stop
       ;;
    restart)
       stop
       start
       ;;
    status)
       ;;
    *)
       echo "Usage: $0 {start|stop|status|restart}"
esac

exit 0

/data/コンピュータの再起動後にディレクトリを確認すると、両方のファイルstartfileも表示されますstopfile。サービスが自動的に起動すると予想される現象ですが、なぜこれが起こるのか疑問にstartfile思います。stopfile

ありがとう

答え1

システムに再起動を要求すると、initscriptが呼び出されます。これはおそらくstopfileシステムが作成されたときです。

startfile予想どおり、システム起動時に作成されます。

ファイルのタイムスタンプを確認すると、これを確認できます。stopfileタイムスタンプは、再起動を要求した時間とシステムが実際に再起動された時間の間になければならず、システムが再起動をstartfile開始した後のタイムスタンプでなければなりません。

関連情報