
supervisord
Linux の起動時に実行されるプログラムを停止するにはどうすればよいですか。いくつかのアプリをスタートアップから削除して、たとえば apache2で管理できるようにしたいです。
答え1
ディストリビューションに応じて、chkconfig または update-rc.d ツールを使用してシステム サービスを有効/無効にします。
redhat/suse/mandrake スタイルのシステムの場合:
sudo chkconfig apache2 off
Debian の場合:
sudo update-rc.d -f apache2 remove
詳細については、man ページを参照してください。
答え2
最新の Ubuntu システムと他のいくつかのディストリビューションを扱っている場合は、従来の init スクリプトと upstart スクリプトの組み合わせを扱う必要があるかもしれません。init スクリプトの管理については、他の回答で説明されています。以下は、起動時に upstart サービスが起動しないようにする 1 つの方法です。
# mv /etc/init/servicename.conf /etc/init/servicename.conf.disabled
この方法の問題点は、以下を使用してサービスを開始できないことです。
# service start servicename
代わりに、servicename.conf
お気に入りのエディターでファイルを開き、次の行で始まる行をコメントアウトすることもできます。
start on
つまり、これを
#start on ...
ここで、「...」は、以前「start on」の後に書かれていたものです。こうすることで、再度有効にしたいときに、「start on」のパラメータが何であったかを覚えておく必要がなくなります。
最後に、新しいバージョンの upstart をお持ちの場合は、設定ファイルの末尾に「manual」という単語を追加するだけです。これはシェルから直接実行できます。
# echo "manual" >> /etc/init/servicename.conf
これにより、upstart はファイル内の前の「start on」フレーズを無視するようになります。
答え3
すべてのスタートアップサービスを一覧表示するには
systemctl
起動時にサービスの実行を停止するには
sudo systemctl disable servicename
例えば、起動時にsshサーバーを停止する必要がある場合
sudo systemctl disable sshd.service
これを再度有効にするには、
sudo systemctl enable sshd.service
ほぼすべての Linux ディストリビューションは、起動サービスのブートストラップに systemd を使用します。したがって、上記のコマンドはほとんどのディストリビューションで機能します。
答え4
Ubuntu 10.04 では、GUI から一部の起動プログラムを制御できます。
System→ Preferences→Startup Applications