ボーナスポイント

ボーナスポイント

私は現在、システムの起動/起動時にスクリプトの実行とクローンの実行init.dの違いを理解しようとしています。@reboot

使用@reboot(この方法は以下で使用されます。このフォーラム渡すチャンドラ)は簡単です。入力してcrontab -e1つを作成する@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.txtyour_script.txt

  1. 2つの主な違いは何ですか?
  2. どちらが強いですか?
  3. どちらに良いものがありますか?
  4. 起動中に実行するスクリプトを含める正しい方法ですか?

起動時に実行するbash .shファイルをマージします。

ベストアンサー1

init.dSysVスクリプトとも呼ばれ、システムの初期化およびシャットダウン中にサービスを開始および停止するために使用されます。 (/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.targetnetwork-online.target

systemdnetwork.targetとについてnetwork-online.target読んでください。ネットワーク接続後のサービスの実行

おすすめ記事