![複数のデーモンプロセスにUpstartスクリプトとinit.dスクリプトが同時にあるのはなぜですか? [閉鎖]](https://linux33.com/image/50659/%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%87%E3%83%BC%E3%83%A2%E3%83%B3%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%ABUpstart%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A8init.d%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%8C%E5%90%8C%E6%99%82%E3%81%AB%E3%81%82%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
私はUbuntu 12.04.3 LTSを実行しており、Samba、DHCPサーバーなどのいくつかのサービスがインストールされています。
「halt now」、「telinit 6」などのコマンドを実行すると、次の警告が表示されます。
Since the script you are attempting to invoke has been converted
to an Upstart job, you may also use the...
影響を受けたサービスが2回停止/開始しようとしていることがわかります。一度はUpstart操作を介して、再びinit.dスクリプトの/etc/rcN.dフォルダのS/Kシンボリックリンクを介して。おそらく、/etc/rcN.dフォルダからシンボリックリンクを簡単に削除できます。
プロセス例:
- シェルで「今すぐ停止」を実行します。
- UpstartはSambaを停止します(SambaにUpstart confファイルがあるため)。
- SysVはSambaを再び停止しようとします(まだ/etc/rc0.d/K20smbdシンボリックリンクがあるため)。
不要に見えて醜い警告が表示されるため、手順3を理解していないか望ましくありません。
複数のデーモンがUpstartスクリプトとinit.dスクリプトへのシンボリックリンクを同時に持つのはなぜですか?各/etc/rcN.dフォルダに重複したシンボリックリンクを手動でクリーンアップする必要があります。これは正しい方法ですか?
答え1
init
Ubuntuには、実行するたびにその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 }
答え2
私はこれが私のPuppetスクリプトの設定エラーであることを発見しました。
「サービス」タイプ属性「Enabled」は、Upstartスクリプトを認識するのではなく、SysV初期化スクリプトを生成します。