web-dev-qa-db-ja.com

いくつかのデーモンに、Upstartスクリプトとinit.dスクリプトの両方があるのはなぜですか?

Ubuntu 12.04.3 LTSを実行していて、Samba、DHCPサーバーなどのいくつかのサービスをインストールしています...

「haltnow」、「telinit 6」などを実行すると、次の警告が表示されます。

Since the script you are attempting to invoke has been converted
to an Upstart job, you may also use the...

影響を受けるサービスが2回停止/開始しようとしていることがわかります。一度Upstartジョブを通過し、もう一度/etc/rcN.dフォルダー内のinit.dスクリプトを対象とするS/Kシンボリックリンクを通過します。おそらく、/ etc /rcN.dフォルダー内のシンボリックリンクを簡単に削除できます。

フローの例:

  1. Shellから「haltnow」を実行します
  2. UpstartはSambaを停止します(SambaのUpstart confファイルがあるため)
  3. SysVはSambaを再び停止しようとします(/etc/rc0.d/K20smbdシンボリックリンクもあるため)

手順3は不要と思われ、醜い警告が表示されるため、わかりません。

いくつかのデーモンに、Upstartスクリプトとinit.dスクリプトへのシンボリックリンクの両方があるのはなぜですか?各/etc/rcN.dフォルダー内の重複するシンボリックリンクを手動でクリーンアップする必要があるのは正しい方法ですか?

4
Alex

Ubuntuには互換性のあるinitリンクがあり、実行するたびに対応するupstartを呼び出します。

たとえばSudo /etc/init.d/Apache startあなたはあなたが使うべき素晴らしい情報メッセージをあなたに提示するupstart-jobにリンクされますSudo services Apache start次に、コマンドを単独で実行します。

ls -l /etc/init.d/network-manager 
lrwxrwxrwx 1 root root 21 Sep 18 14:02 /etc/init.d/network-manager -> /lib/init/upstart-job

cat /lib/init/upstart-job
#!/bin/sh -e
# upstart-job
#
# Symlink target for initscripts that have been converted to Upstart.
{ lots of ASCII awesomeness }
1
Braiam

これは私のPuppetスクリプトの設定ミスであることがわかりました。

'service'タイプ属性 'enable'は、Upstartスクリプトを認識する代わりに、SysVinitスクリプトを作成しました。

0
Alex