CentOSベースのAmazon Linux AMIがあり、起動時に小さなbashスクリプトが呼び出されるカスタムサービスを設定しようとしています(特定の場所に仮想ファイルを作成します)。
私はこのチュートリアルに従いました。https://unix.stackexchange.com/a/20361myscript
次に、次のようにカスタムサービススクリプトを作成し、/etc/init.d folder
777権限と所有者に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
開始した後のタイムスタンプでなければなりません。