Linuxで起動時に実行中のプログラムを停止するにはどうすればよいですか。一部のアプリをスタートアップから削除して、supervisord
で管理できるようにします。例:Apache2
ディストリビューションに応じて、chkconfigまたはupdate-rc.dツールを使用してシステムサービスを有効/無効にします。
Redhat/suse/Mandrakeスタイルシステム:
Sudo chkconfig Apache2 off
Debianの場合:
Sudo update-rc.d -f Apache2 remove
詳しくは、manページをご覧ください。
最新の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 ...
ここで、「...」は、以前の「開始」後のものです。これにより、再度有効にするときに、「開始」パラメーターが何であったかを覚えておく必要がありません。
最後に、upstartの新しいバージョンがある場合は、構成ファイルの最後にWordの「手動」を追加するだけです。これはシェルから直接実行できます。
# echo "manual" >> /etc/init/servicename.conf
これにより、upstartはファイル内の前の「start on」句を無視します。
最近のFedoraおよびFuture RHELシステム
systemctl disable httpd.service
httpdサービスを無効にします
すべてのスタートアップサービスを一覧表示するには
systemctl
起動時にサービスの実行を停止するには
Sudo systemctl disable servicename
たとえば、起動時にsshサーバーの実行を停止する必要がある場合
Sudo systemctl disable sshd.service
これを再び有効にするには、
Sudo systemctl enable sshd.service
ほとんどすべてのLinuxディストリビューションは、スタートアップサービスのブートストラップにsystemdを使用しています。したがって、上記のコマンドはほとんどのディストリビューションで機能します。
SlackwareとArch Linuxには、上記のUbuntuやRedhatスタイルの例とは異なり、起動時にプロセスを停止/開始する同様の方法があります。
SlackwareとArch linuxの両方で、shスクリプトは/etc/rc.d
ディレクトリにあります。通常、デーモンごとに1つのスクリプト、またはサブシステムごとに1つのスクリプトです。
たとえば、Slackwareは、スクリプト/etc/rc.d/rc.httpd
を使用してApache Webサーバーを起動します。このスクリプトは、システム起動中の適切な時点で、引数「start」を使用して呼び出されます。 Arch Linuxには異なる名前のスクリプトがありますが、同じようなことが起こります。
システムの起動中に一部のプロセスが開始されないようにするには、Slackwareで、/ etc/rc.d内の適切なスクリプトを実行可能にしないようにします。 Apacheが次回の起動時に起動しないようにするには:
chmod -x /etc/rc.d/rc.httpd
起動時に開始したApacheを停止するには:/etc/rc.d/rc.httpd stop
rootである必要があります。
Archはもう少し複雑です。シェルスクリプトであるファイル/etc/rc.confには、配列DAEMONSがあります。 Apacheが起動時に起動しないようにするには、/ etc/rc.confの次の行を変更します。
DAEMONS=(hal syslog-ng network netfs crond alsa sshd httpd ntpd postgresql)
この行に:
DAEMONS=(hal syslog-ng network netfs crond alsa sshd ntpd postgresql)
すでに実行中のApacheを停止するには、ルートとして/etc/rc.d/httpd stop
を実行します。
Ubuntu 10.04では、GUIからいくつかのスタートアッププログラムを制御できます。
System→Preferences→Startup Applications