web-dev-qa-db-ja.com

このSystemV initスクリプトを起動時に開始するにはどうすればよいですか?

Raspbian Raspberry Piに disks-glue とSystem V init script at /etc/init.d/udisks-glueをインストールしました(手順に従って ここ )。私はそれを実行可能にし、エラーを返さない以下を実行します。

Sudo update-rc.d udisks-glue defaults

スクリプトを正常に開始でき、期待どおりに機能します。

$ Sudo service udisks-glue start
[ ok ] Starting Automounter: udisks-glue.
$ Sudo service udisks-glue status
[ ok ] udisks-glue is running.

ただし、再起動すると実行されません。これは以前は正常に機能していましたが、最小限のシステムを再インストールしたため、機能しなくなりました。一部のパッケージが不足している可能性があります。

$ Sudo service udisks-glue status
[FAIL] udisks-glue is not running ... failed!

トラブルシューティング

start)ブロックの行を次のように変更して、出力とエラーをログに記録しようとしました

start-stop-daemon --start --exec $DAEMON -- -p $PIDFILE &>> /tmp/udisks-glue.log

このファイルは再起動時に空です。ただし、それは存在し、スクリプトが少なくとも部分的に実行されていることを示唆しています。

最後に、適切なインストールを確認しようとしました。とりわけ、locate udisks-glue

/etc/rc0.d/K01udisks-glue
/etc/rc1.d/K01udisks-glue
/etc/rc2.d/S01udisks-glue
/etc/rc3.d/S01udisks-glue
/etc/rc4.d/S01udisks-glue
/etc/rc5.d/S01udisks-glue
/etc/rc6.d/K01udisks-glue

編集—さらなるトラブルシューティング

スクリプトの動作が早すぎるかどうかをテストする可能性があると考えたため、2つの可能な解決策をテストしました。両方とも失敗しました。まず、スクリプトを低い優先度で実行してみました。

mv /etc/rc2.d/S{01,90}udisks-glue

次に、これを元に戻し、sleep 90呼び出しの直前のstart)ブロックにstart-stop-daemonを挿入しました。

2
Sparhawk

/etc/rc*.dディレクトリにudisks-glueスクリプトへのリンクが含まれていることを考えると、Rasp Piデバイスが2、3、4、または5以外のランレベルで実行されているようです。これを知る方法は、Kで始まるリンクは、Sが開始する間に、それらのランレベルの1つにあるときに、スクリプト/サービスを強制終了することです。

ランレベルを再確認してから、対応するランレベルのディレクトリ内のリンクを調整します。

私のランレベルは何ですか

通常、このコマンドを実行してこれを見つけることができます。

$ runlevel
N 5

したがって、私のシステムはランレベル5にあります。

2
slm