時々システム起動時に2回(数秒間隔で)実行される起動スクリプトがあります(Ubuntu 16.04.3 LTS)。一度だけ実行されることもあります!スクリプトは/etc/init.d/TEST
にあり、スクリプトを指すシンボリックリンク/etc/rc2.d/S99TEST
があります。
問題は、システムの起動時に、スクリプトが時々を2回実行し、その間に数秒の休止があることです。どうすればこれをデバッグできますか?システムログ(/ var/log/*)にスクリプト名が記載されていません。私は途方に暮れています。
スクリプトは次のとおりです。
#!/bin/bash
### BEGIN INIT INFO
# Provides: test_boot
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: test_boot
# Description: test_boot app
### END INIT INFO
exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>>/home/username/TEST.log 2>&1
echo "---"
echo "---"
echo "Starting: $(date)"
sleep 2
echo "User: $(whoami)"
echo "Caller: $(ps -o args= $PPID)"
sleep 2
echo "Done: $(date)"
クリーンブート後のTEST.logファイルは次のとおりです。
---
---
Starting: Mon Feb 12 21:26:35 UTC 2018
User: root
Caller: /sbin/init tegra_keep_boot_clocks
Done: Mon Feb 12 21:26:39 UTC 2018
---
---
Starting: Mon Feb 12 21:26:59 UTC 2018
User: root
Caller: /sbin/init tegra_keep_boot_clocks
Done: Mon Feb 12 21:27:03 UTC 2018
ありがとうございました!
渡されたアクションのように、スクリプトは入力をチェックしていません。/etc/init.d/README
、/etc/init.d/skeleton
、および/etc/init.d/kmod
などの他のスクリプトのドキュメントを見て、渡されたアクションを評価してください実行時にスクリプトに($1
で)、アクションに対して適切な応答を行います。