SuSE の起動が完了した後にスクリプトを実行するにはどうすればよいでしょうか?

SuSE の起動が完了した後にスクリプトを実行するにはどうすればよいでしょうか?

サーバーから(再起動の)完了を(growl 経由で)通知してもらいたいです。 growl を送信する php ファイルは用意していますが、どのファイルに行を追加すればよいかわかりません。

SuSE の起動が完了した後にのみ実行されるようにコードを追加するには、どのファイルが必要ですか?

答え1

(open)SUSE は/etc/init.d/after.localこの目的に使用します。実行する必要があるコマンドをそのファイルに追加するだけです。これは SystemV init では問題なく動作しますが、systemd では別の方法で解決する必要があることに注意してください。

答え2

Suse Linux Enterprise 11 SP2 (および openSUSE?) の新しい構文

最善の方法は、PHP スクリプトを呼び出すシェル スクリプトを作成することです。このシェル スクリプトのヘッダーには、次のコメントが含まれている必要があります。

#!/bin/sh
### BEGIN INIT INFO
# Provides:          nothing
# Required-Start:    $all
# Default-Start:     3 5
# Default-Stop:      4
# Short-Description: single_line_description
# Description:       multiline_description
### END INIT INFO

典型的なテンプレート (説明コメントが多数含まれています) は にあります/etc/init.d/skeleton。このテンプレートには、PHP スクリプトをフックするために必要なコードが含まれています。PHP スクリプトを呼び出す必要がある開始ケースが表示されます。
ヘッダー内のオプション パラメータのいくつかは、必要ではないと思われるため削除しました。

重要
少なくともcase文のスケルトンを使うことが重要です(初期化スクリプトのアクション) を作成し、少なくとも開始ケースを実装します。開始ケースでは、スクリプトを呼び出す場所です。

ブートの最後に呼び出される小さなスクリプトの例を次に示します。私のGistをご覧ください. Default-Stop に無効な実行レベルを設定しましたが、シャットダウン中にスクリプトが呼び出されます。いずれにしても、シャットダウン中に実行されるのは「start」の場合のコードではなく、「stop」の場合のコードです。

スクリプトを記述したら、それをコピーします。init/etc/init.dスクリプトの名前が boot-notification であると仮定すると、次のように実行します (root として):

chown root:root boot-notification
chmod 0750 boot-notification
mv boot-notification /etc/init.d/

次に、スクリプトを init システムに「登録」する必要があります。insservコマンド (再び root として) を使用するか、YaST を使用することもできます。

insserv boot-notification

次に、各 init レベルを調べて、スクリプトが最後に実行されるものの 1 つであることをさらに確認できます。実行レベル 3 のみを選択した場合は、次のようにします。

ls -l /etc/init.d/rc3.d/S*

これにより、init スクリプトへのリンクのリストが返されます。スクリプトへのリンクは、リストの最後 (またはその近く) にある必要があります。

注: より動的な方法で init スクリプトを記述してみたい場合は、次の 2 つのページを読むことをお勧めします。

答え3

OpenSUSE 12.2(Mantis)の場合、脚本「after local」は である必要があり/etc/init.d/after-local、次のように systemctl 経由で有効にする必要があるかもしれません...

有効にする/etc/init.d/after-local、

systemctl enable after-local.service

ステータスを確認する/etc/init.d/after-local の、

systemctl status after-local.service

答え4

それには 2 つの方法があることがわかりました。

  1. まず最初に、ターミナルを開いて次のように入力します。

sudo crontab -e

次に入力

@reboot sudo <command_to_execute_at_startup>

  1. 次にサービスファイルを作成しますこの方法を使う

関連情報