
OpenSuSe 11が起動したら、次のサンプルスクリプトを実行する必要があります。
#!/bin/sh
i=0;
while true; do
"SOME COMMAND FOR SAVING i TO ANOTHER PLACE" &> /dev/null
i=$((i+1))
sleep 1
done
したがって、デフォルトでは、1秒ごとに変数を1ずつ増やし、その変数を別のシステムに送信します。このスクリプトを/bin/user/script.shに保存します。
コンソールでスクリプトを実行すると正常に動作します。
/bin/user/script.sh > /dev/null 2>&1 &
まず、OpenSuSeに付属の既存の/etc/init.d/boot.localにこの行を追加しましたが、正しく機能しませんでした。始まる時もそうでない時もあります。ユーザー権限が原因だと思いましたが、その後も
chmod 755 script.sh
問題はまだ存在します。それから私自身の/etc/init.d/myscriptを作成しました。
/etc/init.d/myscriptの内容:
#! /bin/sh
#
# /etc/init.d/myscript
#
### BEGIN INIT INFO
# Provides: myscript
# Required-Start:
# Required-Stop:
# Default-Start: 3 5
# Default-Stop: 0
# Short-Description: Start myscript while booting
# Description: ...
### END INIT INFO
#
#
#
case "$1" in
start)
echo "Starting myscript."
/bin/user/script.sh > /dev/null 2>&1 &
;;
stop)
echo "Stopping myscript."
killall -9 script.sh
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
その後、スクリプトに対してinsservコマンドを実行しました。
insserv myscript
コンソールで起動および停止が可能です。
/etc/init.d/myscript start
/etc/init.d/myscript stop
しかし、myscriptを再起動した後、生命の兆候は見えません。
私は何が間違っていましたか?システムが起動するたびにスクリプトを正常に実行するにはどうすればよいですか?
2015.11.12 アップデート: このスクリプトは、OpenSuSe 11 で実行すると正常に動作し、正常に起動します。
答え1
insservが有効であることを確認しましたか?
実行するとchkconfig --list | grep myscript
出力が出ますか?