GNU/Linux >> Linux の 問題 >  >> Linux

Systemdは/etc/init.dスクリプトをどのように使用しますか?

私はdebianjessieに切り替えたところですが、グラフィカルディスプレイマネージャーのwdmを含め、ほとんどすべてが問題なく動作します。 。

問題は、これがどのように機能するのか理解していないということです。明らかに私の/etc/init.d/wdm スクリプトが呼び出されるのは、初期のexitを配置したためです。 そこでは、wdmは開始されません。しかし、代わりに/etc/rc3.dの名前を変更すると ディレクトリ(私のデフォルトのランレベルは3でした)、それでもwdmは開始されます。

systemdがこのスクリプトをどのように見つけるかを知ることができず、他のすべてのinit.dスクリプトに対してどのように機能するかを理解していません。

  • systemdはいつどのようにinit.dスクリプトを実行しますか?
  • 長期的には、すべてのinit.dスクリプトを削除する必要がありますか?

承認された回答:

カオスの答えは、いくつかのドキュメントが言っていることです。しかし、それはsystemdが実際に行うことではありません。 (van Smoorenburg rcではありません どちらかでした。ヴァンスムーレンブルクrc 最も間違いなくしなかった insservであるLSBヘッダーを無視します 初心者のために、静的な順序を計算するために使用されます。)「非互換性」ページなどのFreedesktopのドキュメントは、これらの点やその他の点で実際には間違っています。 (HOME 実際、環境変数は たとえば、よく設定されます。これは長い間どこでも完全に文書化されていませんでした。少なくともマニュアルに記載されていますが、Freedesktop WWWページはまだ修正されていません。)

systemdのネイティブサービスフォーマットはサービスユニットです 。 systemdのサービス管理は適切に単独で動作します それらに関しては、(システム全体で).serviceが存在する9つのディレクトリの1つから読み取ります。 ファイルは生きることができます。 /etc/systemd/system/run/systemd/system/usr/local/lib/systemd/system 、および/usr/lib/systemd/system それらのディレクトリのうちの4つです。

van Smoorenburg rcとの互換性 スクリプトは、systemd-sysv-generatorという名前の変換プログラムで実現されます。 。このプログラムは、/usr/lib/systemd/system-generators/にリストされています。 ディレクトリであるため、ブートストラッププロセスの早い段階で、起動するたびにsystemdによって自動的に実行されます。また、systemdが後で構成を再ロードするように指示されるたびに実行されます。

このプログラムはジェネレーターです は、サービスユニットファイルをオンザフライで作成することを目的とした補助ユーティリティの一種であり、これらの9つのディレクトリ(ジェネレーターのみが使用することを目的としています)のうち3つが配置されているtmpfsにあります。 systemd-sysv-generator van Smoorenburg rcを実行するサービスユニットを生成します /etc/init.dのスクリプト 、他の6つの場所にすでに存在するその名前のネイティブsystemdサービスユニットが見つからない場合。

systemdサービス管理は、サービスユニットについてのみ知っています。これらの自動的に(再)生成されたサービスユニットは、van Smoorenburg rcを呼び出すように記述されています。 スクリプト。とりわけ、次のようなものがあります。

[Unit]
SourcePath=/etc/init.d/wibble
[Service]
ExecStart=/etc/init.d/wibble start
ExecStop=/etc/init.d/wibble stop

関連:Ubuntu – .shスクリプトを実行する方法は?

受け取った知恵は、van Smoorenburg rc スクリプトにはLSBヘッダーが必要であり、/etc/rc?.d/によって課せられた優先順位を尊重せずに並行して実行されます。 システム。これはすべての点で正しくありません。

実際、LSBヘッダーは必要ありません。systemd-sysv-generatorがない場合は、 より限定された古いRedHatコメントヘッダーを認識できます(description:pidfile: 、など)。さらに、LSBヘッダーがない場合は、/etc/rc?.dの内容にフォールバックします。 シンボリックリンクファーム、リンク名にエンコードされた優先順位を読み取り、それらからの注文の前後に構築し、サービスをシリアル化します。 LSBヘッダーは要件ではないだけでなく、ある程度シリアル化する順序付けの前後にそれら自体がエンコードされるだけでなく、完全に存在しない場合のフォールバック動作は、実際には大幅に非並列化された動作です。

/etc/rc3.dが 別の/etc/rc?.d/を介してそのスクリプトを有効にした可能性があります。 ディレクトリ。 systemd-sysv-generator /etc/rc2.d/のいずれかにリストされていることを翻訳します 、/etc/rc3.d/ 、および/etc/rc4.d/ ネイティブのWanted-By systemdのmulti-user.targetとの関係 。ランレベルはsystemdの世界では「時代遅れ」であり、忘れることができます。

さらに読む

  • systemd-sysv-generator 。 systemdのマニュアルページ。 Freedesktop.org。
  • 「生成されたプロセスの環境変数」。 systemd.exec 。 systemdのマニュアルページ。 Freedesktop.org。
  • https://unix.stackexchange.com/a/394191/5132
  • https://unix.stackexchange.com/a/204075/5132
  • https://unix.stackexchange.com/a/196014/5132
  • https://unix.stackexchange.com/a/332797/5132

Linux
  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. / etc / motdはどのように更新されますか?

  3. ダウン時に Systemd を使用してサービスを再起動する方法は?

  1. systemd サービスを停止する方法

  2. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

  3. MySQL の再起動方法

  1. /etc/passwd はグループ内のユーザーを表示しますが、/etc/group は表示しません

  2. Linux の /etc/init.d と /etc/rcX.d ディレクトリの間の接続は何ですか?

  3. /etc/issues をセットアップして eth0 の IP アドレスを表示する方法