debianのディストリビューションであるtinkerOSを実行しています。しかし、何らかの理由で、raspbian (これも debian ベース) で動作する cwhservice は、tinkerOS では動作しません。
スクリプトは /etc/init.d/ に配置され、cwhservice と呼ばれます。systemctl deamon-reload が実行され、コードは次のようになります。
#!/bin/sh
### BEGIN INIT INFO
# Provides: CWH
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts the CWH
# Description: Starts the CWH
### END INIT INFO
case "$1" in
start)
/opt/cwh/start.sh > /opt/cwh/log.scrout 2> /opt/cwh/log.screrr
;;
stop)
/opt/cwh/stop.sh
;;
restart)
/opt/cwh/stop.sh
/opt/cwh/start.sh
;;
*)
echo "Usage: $0 {start|stop|restart}"
esac
exit 0
実行すると:sudo service cwhservice start
次のエラーが表示されます:
Job for cwhservice.service failed because the control process exited with error code.
See "systemctl status cwhservice.service" and "journalctl -xe" for details.
systemctl status cwhservice.service は以下を提供します:
● cwhservice.service - LSB: Starts the CWH
Loaded: loaded (/etc/init.d/cwhservice; generated; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2017-08-24 13:36:22 UTC; 1min 21s ago
Docs: man:systemd-sysv-generator(8)
Process: 15431 ExecStart=/etc/init.d/cwhservice start (code=exited, status=203/EXEC)
Aug 24 13:36:22 linaro-alip systemd[1]: Failed to start LSB: Starts the CWH.
Aug 24 13:36:22 linaro-alip systemd[1]: cwhservice.service: Failed with result 'exit-code'.
したがって、すべてのコードと値をいじった後も、まだうまくいかなかったので、再起動スクリプトを改造しようとしましたが、現在は次のようになりました。
#! /bin/sh
### BEGIN INIT INFO
# Provides: kaas2
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop: 6
# Short-Description: Execute the reboot command.
# Description:
### END INIT INFO
case "$1" in
start)
# No-op
/opt/cwh/start.sh
echo "foo" >&2
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
;;
status)
exit 0
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
sudo service cwhservice start
エラーを返しませんが、何もしません。しかし、何らかの奇妙な理由でsudo service cwhservicer restart
、実際には start.sh スクリプトを開始しますが、エコーを返しません...この時点で完全に失われ、2日間無駄になりました...
起動時に起動できるデーモンを作成し、debian で start.sh スクリプトを起動する方法についてのアイデアはありますか?