私は現在、システムの起動/起動時にスクリプトの実行とクローンの実行init.d
の違いを理解しようとしています。@reboot
使用@reboot
(この方法は以下で使用されます。このフォーラム渡すチャンドラ)は簡単です。入力してcrontab -e
1つを作成する@reboot /some_directory/to_your/script/your_script.txt
と、your_script.txt
システムが再起動されるたびに実行されます。詳細な説明@reboot
はここ
または挿入/etc/init.d/your_script.txt
して2行目あなたのスクリプトは次のとおりです
#!/bin/bash
# /etc/init.d/your_script.txt
実行でき、システムが起動するたびに実行する必要がありますchmod +x /etc/init.d/your_script.txt
。your_script.txt
- 2つの主な違いは何ですか?
- どちらが強いですか?
- どちらに良いものがありますか?
- 起動中に実行するスクリプトを含める正しい方法ですか?
起動時に実行するbash .shファイルをマージします。
ベストアンサー1
init.d
SysVスクリプトとも呼ばれ、システムの初期化およびシャットダウン中にサービスを開始および停止するために使用されます。 (/etc/init.d/
互換性のためにシステムが有効になっているシステムでもスクリプトを実行できます。)
- このスクリプトは開始および終了中に実行されます(デフォルトでは)。
- スクリプトは単純なスクリプトではなくinit.dスクリプトでなければなりません。
start
それ以上をサポートする必要がありますstop
(参照:Debian ポリシー) - スクリプトを実行できます。期間システムが起動します(いつ定義できます)。
crontab
(したがって@reboot
)。
- cronは一般的なコマンドやスクリプトを実行し、ここでは特別なものはありません。
- すべてのユーザーが
@reboot
スクリプトを追加できます(ルートだけでなく)。 - systemdのあるDebianシステムでは、cronの@rebootが
multi-user.target
。 - SysV(systemdではない)を持つDebianシステムでは、crontab(5)は次のように言います。@reboot の場合、cron(8) デーモンの起動時に開始されます。具体的には、一部のシステムデーモンやその他の機能が開始される前である可能性があります。これは機械の始動順序によるものです。
- 起動時と定期的に同じスクリプトをスケジュールするのは簡単です。
/etc/rc.local
しばしば醜いまたは反対していると考えられています(少なくとも赤い帽子)、しかしまだいくつかの良い機能があります。
- rc.local は一般的なコマンドやスクリプトを実行し、ここでは特別なものはありません。
- SysV(systemdではない)を持つDebianシステム:(
rc.local
ほぼ)最後のサービスが開始されました。 - しかし、systemdを持つDebianシステムでは、デフォルトで後で
rc.local
実行されます(いいえ!)network.target
network-online.target
systemdnetwork.target
とについてnetwork-online.target
読んでください。ネットワーク接続後のサービスの実行。