
サーバーから(再起動の)完了を(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 つの方法があることがわかりました。
- まず最初に、ターミナルを開いて次のように入力します。
sudo crontab -e
次に入力
@reboot sudo <command_to_execute_at_startup>
- 次にサービスファイルを作成しますこの方法を使う