Linux サービスの自動起動を防ぐにはどうすればよいですか?

Linux サービスの自動起動を防ぐにはどうすればよいですか?

最近、WindowsからLinux(xubuntu)に移行しました

私は開発者で、必要なものはすべてインストールしています。LAMP です。Windows では、不要なサービスはすべてオフにしていました。Apache や MySQL サービスを常時実行する必要はありません。MySQL が必要なときは、次のようにしていました。

net start mysql

Linux で同じことを行うにはどうすればいいでしょうか?

  1. 不要なデーモンの自動起動を無効にしますか?
  2. 必要なときだけ起動しますか?

答え1

ほとんどの Linux ディストリビューションでは、次のコマンドを (root として、または sudo を使用して) 実行することで、サービスを手動で開始/停止できます。

# /etc/init.d/apache2 start
# /etc/init.d/mysqld start

# /etc/init.d/apache2 stop
# /etc/init.d/mysqld stop

どのサービスが自動的に開始されるかは、/etc/rc[runlevel].d/ 内のファイルリンクによって制御されます。現在のランレベルを確認するには、root として「runlevel」コマンドを使用します。

# runlevel
N 2

ここではランレベル 2 を示しています。これで、起動したくない /etc/rc2.d/ 内のファイルを削除するだけです。

デスクトップ上の Apache と Mysql を削除することは通常は問題ありませんが、他のサービスを削除する場合は注意してください。

答え2

systemd を使用する Ubuntu バージョン (15.04 以降) の場合は、次を使用します。

systemctl disable service

これで問題は解決しました。サービスを無効にし、再起動後に再起動しないようにします。一時的に有効にするには、始めるサービス。有効にする

サービス名を見つけるには

service --status-all

その他のコマンドは次のとおりです。

systemctl start service- サービスを開始するために使用します。再起動後は持続しません

systemctl stop service- サービスを停止するために使用します。再起動後は持続しません

systemctl restart service- サービスを再起動するために使用します

systemctl status service- サービスのステータスを表示します。サービスが現在実行されているかどうかを示します。

systemctl enable service- 次回の再起動時または次回の起動イベント時にサービスをオンにします。再起動後も維持されます。

systemctl disable service- 次回の再起動時または次回の停止イベント時にサービスをオフにします。再起動後も維持されます。

答え3

Ubuntu 10.04 は、SysVinit (ほとんどの Linux ディストリビューションで使用されている従来のシステム) と Upstart (Ubuntu が推進し、ますます多くのディストリビューションで利用できるようになっている新しいシステム) という 2 つのサービス管理システム間の移行の真っ最中です。

SysVinitサービス管理スクリプトは にあります/etc/init.d。 でサービスを開始し/etc/init.d/SERVICENAME start、 で停止することができます/etc/init.d/SERVICENAME stop。 起動時にサービスが自動的に開始されるかどうかは、 のシンボリックリンクの存在によって決まります。/etc/rc?.dはからまで?の数字です(25ランレベル)。起動時にサービスが自動的に開始されないようにする最も簡単な方法は、 を使用することですupdate-rc.d SERVICENAME disable

Upstart サービス管理構成ファイルは にあります/etc/init。 でサービスを開始しstart SERVICENAME、 で停止できますstop SERVICENAME。構成ファイル/etc/init/SERVICENAME.confには、サービスをいつ開始するかを示す行が含まれています: start on …。これらのサービスを無効にする簡単な方法は、その行を に変更することですstart on never and (…)。ファイルを編集したくない場合は、 で終わらないように名前を変更することで、パッケージング システムを混乱させることなくサービスを完全に無効にすることもできます.conf

dpkg-divert --add --local --divert /etc/init/foo.conf.disabled --rename /etc/init/foo.conf

Ubuntu 10.04 以降では、Apache には SysVinit スクリプトが付属し、Mysql には Upstart スクリプトが付属します。

関連情報