私は私のサーバーが(再び)開始が完了したことを(うなり声で)私に知らせたいと思います。うなり声のためのPHPファイルが用意されていますが、どのファイルにその行を追加するのかわかりません。
SuSEの起動が完了した後にのみコードを実行するには、どのファイルにコードを追加する必要がありますか?
答え1
(open)SUSEが/etc/init.d/after.local
この目的に使用されます。実行する必要があるコマンドをファイルに追加するだけです。これはSystemV initではうまく機能しますが、systemdではAFAIKを別の方法で解決する必要があります。
答え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スクリプトを呼び出す必要があるスタートアップケースが表示されます。
不要だったので、ヘッダーに多くのオプションのパラメータを削除しました。
重要
少なくともケースステートメントのフレームワークを使用することが重要です(参照:初期化スクリプトの操作)、少なくとも開始ケースを実装します。初期の場合、スクリプトが呼び出される場所です。
ブートの終わりに呼び出される小さなスクリプトの例をここで見つけることができます。私の主な内容を見る。デフォルトの停止に無効な実行レベルを設定しましたが、シャットダウン中にスクリプトは引き続き呼び出されます。とにかく、「stop」ケースのコードは、「start」ケースのコードの代わりに終了時に実行されます。
スクリプトを作成してコピーします。/etc/init.d
初期化スクリプトがboot-notificationであると仮定し、rootとして次のようにします。
chown root:root boot-notification
chmod 0750 boot-notification
mv boot-notification /etc/init.d/
その後、スクリプトをinitシステムに「登録」する必要があります。このコマンドを再度ルートとして使用するinsserv
か、YaSTを使用できます。
insserv boot-notification
その後、各初期化レベルを確認して、このスクリプトが最後に実行されたスクリプトの1つであるかどうかをさらに確認できます。ランレベル3のみを選択した場合は、次のことができます。
ls -l /etc/init.d/rc3.d/S*
これにより、初期化スクリプトの関連リストが返されます。スクリプトへのリンクはリストの末尾(またはその近く)になければなりません。
注:より動的な方法で初期化スクリプトを作成したい場合は、次の2ページをお読みください。
答え3
OpenSUSE 12.2(Mantis)の場合、スクリプト「ローカル以降」が何であるかについては、/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>
- 2番目にサービスファイルを作成できますこの方法を使用してください