サービスを有効または無効にするには?

Ubuntuでサービスを有効または無効にする方法について読みましたが、それらを管理するにはさまざまな可能性があるようです。

私が見つけた最初の方法は update-rc.d スタートアップに新しいサービスを追加するには、次のことを目指しています /etc/init.d フォルダとその内容。

私が見つけたもう一つは編集することです .conf のファイルは、 /etc/init フォルダ。

サービスを有効/無効/追加するための推奨される方法とその理由は何ですか?

Ubuntuにサービスを追加し、それを有効または無効にする方法についての短い防弾ステップの例を教えてください。

GUIを使用して有効/無効にできるサービスがあります(次のように startup アプリケーション)または端末。

端末にはいくつかのオプションがあります。 まず、端末を開きます(たとえば、ダッシュに"terminal"と入力して開きます)。 その後:

一時的なサービスの有効化/無効化

サービスを停止および開始するには 一時的に (将来のブーツのためにそれらを有効/無効にしません)、次のように入力できます service SERVICE_NAME [action]. 例えば:

  • sudo service apache2 stop:ウィル 止まれ! 再起動するまで、または再起動するまでApacheサービス。
  • sudo service apache2 start:ウィル スタート 以前に停止したと仮定したApacheサービス。
  • service apache2 status:それは無効/実行されていないのいずれかの有効/実行されている場合は、あなたのサービスの状態を教えてくれます。
  • sudo service apache2 restart:ウィル 再起動 サービス。 これは、設定ファイルを変更したときに最も一般的に使用されます。 この場合、PHP構成またはApache構成のいずれかを変更した場合。 再起動すると、2つのコマンドラインで停止/開始する必要がなくなります
  • service apache2:この場合、サービスに対して実行するアクションについて言及していないため、その特定のサービスで使用可能なすべてのオプションが表示されます。 たとえば、MySQLでは、パラメータがないことだけが言及されます。 Networking serviceのような他のサービスでは、利用可能なすべてのオプションの小さなリストに言及します。

Systemd

Ubuntu15.04以降では、UpstartはSystemdを支持して非推奨になります。 サービスを管理するためのSystemdを使用すると、次のことができます( systemctl action SERVICE パターン):

  • sudo systemctl start SERVICE:サービスを開始するために使用します。 再起動後も持続しません
  • sudo systemctl stop SERVICE:サービスを停止するために使用します。 再起動後も持続しません
  • sudo systemctl restart SERVICE:サービスを再起動するために使用します
  • sudo systemctl reload SERVICE:サービスがそれをサポートしている場合、サービスを使用しているプロセスを中断することなく、それに関連する設定ファイルをリロードします。
  • systemctl status SERVICE:サービスの状態を表示します。 サービスが現在実行されているかどうかを示します。
  • sudo systemctl enable SERVICE:次の再起動時、または次の開始イベント時に、サービスをオンにします。 再起動後も持続します。
  • sudo systemctl disable SERVICE:次の再起動または次の停止イベントでサービスをオフにします。 再起動後も持続します。
  • systemctl is-enabled SERVICE:次の再起動時にサービスが現在開始するように構成されているかどうかを確認します。
  • systemctl is-active SERVICE:サービスが現在アクティブであるかどうかを確認します。
  • systemctl show SERVICE:サービスに関するすべての情報を表示します。
  • sudo systemctl mask SERVICE:完全にそれをリンクすることにより、サービスを無効にします /dev/null サービスを手動で開始したり、サービスを有効にしたりすることはできません。
  • sudo systemctl unmask SERVICE:へのリンクを削除します /dev/null また、サービスを有効にしたり、手動で開始したりする機能を復元します。

Upstart(15.04以降は非推奨)

公式のUpstartの方法を使用したい場合(現時点では、すべてのサービスがUpstartに変換されているわけではないことに注意してください)、次のコマンドを使用できま:

status SERVICE -これは、変換されたサービスが実行されているかどうかを教えてくれます。 これは非推奨であることに注意してください start, stop, status &; restart. また、サービスがまだupstartに変換されていないかどうかもわかります:

変換されたサービスは、通常、現在の状態(開始、実行、停止)を出力します。..)およびプロセスID。 変換されていないサービスは、次のエラーを返します 不明なジョブ.

一部のショートカットは、以下でのみ動作する場合があります。 service 上記のコマンドではなく、100%upstartサービスに変換されていない限り、以下のコマンドで:

  • sudo start mysql:スタート
  • sudo stop mysql:ストップ
  • sudo restart mysql:再起動
  • sudo status smbd:ステータス

サービスの有効化/無効化

サービスを永続的に開始または停止するかどうかを切り替えるには、次の操作を実行する必要があります:

echo manual | sudo tee /etc/init/SERVICE.override

スタンザが manual Upstartが次回の起動時にサービスを自動的にロードするのを停止します。 の任意のサービス .override 終了は、元のサービスファイルよりも優先されます。 後で手動でサービスを開始することができるのは、その時点でのみです。 これをしたくない場合は、単に削除します .override.例えば:

echo manual | sudo tee /etc/init/mysql.override

MySQLサービスを次の場所に配置します manual モード。 これを望まない場合は、後で簡単に行うことができます

sudo rm /etc/init/mysql.override

サービスが自動的に再び起動するように再起動します。 もちろん、サービスを有効にするには、最も一般的な方法はそれをインストールすることです。 Apache、Nginx、MySQLなどをインストールすると、インストールが完了すると自動的に開始され、コンピュータが起動するたびに開始されます。 上記のように無効にすると、サービスが利用されます manual.

現在、Ubuntuでソフトウェアをサービスとして開始するには、実際には3つの異なる方法があります, SysV, Upstart(アップスタート)systemd. サービスは、ユーザーが直接起動して実行するのではなく、バックグラウンドでシステムによって実行されるプログラムとしてここで定義されます。

SysV

Linuxでサービスを開始する従来の方法は、スクリプトを次の場所に配置することでした /etc/init.d を使用して、 update-rc.d コマンド(またはRedHatベースのディストリビューション, chkconfig)を有効または無効にします。

このコマンドは、いくつかの軽度に複雑なロジックを使用してシンボリックリンクを作成します /etc/rc#.d サービスを開始する順序を制御する。 あなたが実行した場合 ls /etc/rc2.d 次のようなファイル名でサービスが強制終了される順序を見ることができます K##xxxx ファイル名から始めて S##xxxx. その ##S##xxxx サービスのための"開始順序"を意味します xxxx. 逆に、 ##K##xxxx サービスのためのキル順序を意味します xxxx.

一つの主要な問題と SysV システムを起動するときに, すべてがシリアルで行われなければならず、次々とシステムの起動時間が本当に遅くなりました. これを並列化する試みが行われましたが、それらは行き当たりばったりであり、最大限に活用するのは難しかったです。 これが主な理由でした Upstart(アップスタート) 作成されました。

Upstart(アップスタート)

Upstartは、ジョブ定義ファイルを使用します /etc/init サービスを開始する必要があるイベントを定義します。 したがって、システムの起動中に、upstartはさまざまなイベントを処理し、複数のサービスを並行して開始できます。 これにより、たとえば、別のCPUバインドされたサービスが実行されている間、またはネットワークが動的IPアドレスが割り当てられるのを待っている間に、

次のコマンドを実行すると、すべてのupstartジョブファイルを表示できます ls /etc/init/*.conf

私はちょうどここで停止し、あなたがサービスが何であるか、またはそれが何をしているかわからない場合は、それを無効にしないでくださいと言

すべてのサービスがupstartに変換されているわけではありません。 ここ数ヶ月Canonicalのサーバーチームで作業している間、私は変換されたジョブファイルの数に取り組んできましたが、最も素敵な部分は、すべてのスクリプト"魔法" しかし、今のところ、伝統的なネットワークサービスのほんの一握り、のような イカサンバ、変換されています。

サービスは新興企業に基づいていますか?

サービスがupstartベースであるかどうかを判断するには、statusコマンドを実行します:

status servicename

それがあれば upstart(アップスタート) ジョブ、それはこれを表示します:

$ status statdstatd start/running, process 942

しかし、そうでない場合は、このようなものが表示されます:

$ status apache2status: Unknown job: apache2

この場合, apache2 に変換されていない upstart(アップスタート). だから、無効にするには apache2 あなたはちょうど実行します

sudo update-rc.d apache2 disablesudo service apache2 stop

Upstartでのサービス(ジョブ)の無効化

Upstartジョブ定義には、次のものはありません。 update-rc.d コマンド。 ジョブを無効にするには、ジョブファイルを直接編集して無効にする必要があります。 これを行うには2つの方法があります。

それでも手動で起動できるようにしたい場合は、コメントアウトする必要があります start on 条件。 インストールしたいとします サンバ、しかし、それは自動的に起動していません。 ここにジョブファイルがあります(natty):

description "SMB/CIFS File Server"author      "Steve Langasek <steve.langasek@ubuntu.com>"start on local-filesystemsstop on runlevel [!2345]respawnpre-start script    RUN_MODE="daemons"    [ -r /etc/default/samba ] && . /etc/default/samba    [ "$RUN_MODE" = inetd ] && { stop; exit 0; }    install -o root -g root -m 755 -d /var/run/sambaend scriptexec smbd -F

無効にするには サンバ、あなただけの置くことができます # の前に"start on local-filesystems". 起動時にバックアップを開始しませんが、今回はそれを停止する必要があります

sudo service smbd stop

しかし、あなたが望んでいない場合 サンバ 開始するには、実際にパッケージを削除することをお勧めします。 ただし、インストールしたいが起動できない場合は、次のようにすることもできます:

mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled

Start/stopスタンザを使用してサービスを無効にする(11.04時点)

11.04に含まれるupstartのバージョンから、新しいキーワードがあります。 start onstop on スタンザ: manual. そのため、11.04の時点でサービスを無効にする別の方法は次のとおりです:

echo 'manual' | sudo tee /etc/init/mysql.override# command from root shellecho manual >> /etc/init/mysql.override

を作成することができます。 override ジョブ定義をまったく編集せずにサービスを無効にするファイル。 manual その中のキーワード。

sysv-rc-conf

を使ってみて sysv-rc-conf

sudo apt-get install sysv-rc-conf

サービスの管理を開始するには、次のように実行します

sudo sysv-rc-conf

このような対話型ウィンドウが表示されます

以下を使用してページをさらに移動できます Ctrl+n 次のページと Ctrl+p 前のページのために。 サービスを有効または無効にするには、次を選択します SPACE 目的のランレベルで。

ジョブ-管理者

別の代替は次のようになります ジョブ-管理者 を介してインストールすることにより、

sudo apt-get install jobs-admin

これは次のようなGUIも提供します

より多くのジョブを表示するには、チェックする必要があります 保護されたジョブを表示 そのメニューから。

chkconfig

そして第三の選択肢は次のようになります chkconfig,

sudo apt-get install chkconfig

CLI経由で使用できます chkconfig、オン/オフジョブのリストを表示します。また、以下を使用してシステムサービスを表示することもできます chkconfig –list

サービスは以下を使用して有効にすることができます

chkconfig <service> on

サービスは、以下を使用してオフにすることができます

chkconfig <service> off

また、適切な見出しを持つ適切なinitスクリプトを使用して、独自のサービスを追加することもできます。

chkconfig --add <service>

更新-rc。d

また、別のオプションを参照することができます ここで更新-rc。d 、簡単に説明 ここでは、.

Ubuntuサーバー12.04の場合, update-rc.d chkconfigの代わりに使用されます。

Ssh経由でUbuntuを実行する私たちのために、私は素敵なオプションがあると思います rcconf -テキストベースのプログラム:

sudo apt-get install rcconfsudo rcconf

Tabキーと矢印キーで移動し、spaceキーを押して有効/無効にします。 変更は再起動後も持続します。

から借りたスクリーンショット このブログ記事を参照しているブログ一覧:、これも示しています sysv-rc-conf -また、ランレベルを設定することができます同様のツール。 (それらを変更したいランレベルについて十分に気にすることが起こる人のために:)

残念ながら、rcconfはupstart(に記載されているサービス)では動作しません /etc/init/*)、従来の仕組みだけで(ls -l /etc/init.d/* -シンボリックリンクではないもの)。

幸いなことに、サーバー(Apache、Tomcat、mdadm、boinc-client)にssh-ingするときに関連するサービスの多くは、次のようになります。..)はまだupstartに移動されていません。

私はそれを知った バイオニックまで BUMのようなものですが、Upstart:Jobs-Adminと互換性があります

sudo apt-get install jobs-admin

既存のupstart構成ファイル(上記のように)を編集することはあまり良い考えではありません。 更新されたパッケージは更新された設定を提供する可能性があり、変更を何度も繰り返さなければなりませんでした。

を見てみると、 man 5 init 一つは、より適切な解決策を見つけるでしょう:上書き設定を使用します。 短い例:"foobar"というサービスがあるとすると、次のようなファイルがあります /etc/init/foobar.conf その成り上がりの構成で。 今、あなたはそのファイルを削除したり、それを変更したりしたくありませんが、このサービスを実行したくありませんか? だから、場所 上書き その横にあるファイル: /etc/init/foobar.override、代わりに(必要に応じて説明とヘッダを含む)を含む start on / stop on 行あなたは一つの単語で行を配置します: manual. この方法では、基本的に使用するようにupstartに指示します foobar.conf ただし、起動定義をオーバーライドして、手動で強制された場合にのみそのサービスを開始します service foobar start この例では)。

またあります ブートアップマネージャ.

インストールするには: sudo apt-get install bum

さらに詳しい情報: http://www.marzocca.net/linux/bum.html

CLIのみを使用するため、私にとって最も簡単な方法は次のとおりです update-rc.d.

再起動時などに自動起動を有効または無効にするには :

sudo update-rc.d <daemon|service> <enable|disable>

例:

update-rc.d spamassassin enable

デーモンを停止または開始したり、その状態を確認したりするには:

sudo service <daemon|service> <start|stop|restart|reload|force-reload|status>

例:

sudo service spamassassin status  spamassassin.service - Perl-based spam filter using text analysis   Loaded: loaded (/lib/systemd/system/spamassassin.service; disabled; vendor preset: enabled)   Active: active (running) since Thu 2020-05-21 13:04:10 SAST; 4s ago  Process: 1928 ExecStart=/usr/sbin/spamd -d --pidfile=/var/run/spamd.pid $OPTIONS (code=exited, status=0/SUCCES Main PID: 1949 (spamd)    Tasks: 3 (limit: 2361)   CGroup: /system.slice/spamassassin.service           ├─1949 /usr/bin/perl -T -w /usr/sbin/spamd -d --pidfile=/var/run/spamd.pid --create-prefs --max-child           ├─1951 spamd child           └─1952 spamd child`  etc  etc

update-rc.d 上記の基本的なものよりも少し多くを行うことができます:

usage: update-rc.d [-f] <basename> remove       update-rc.d [-f] <basename> defaults       update-rc.d [-f] <basename> defaults-disabled       update-rc.d <basename> disable|enable [S|2|3|4|5]        -f: force

いつものように、あなたはvan参照してくださ マンページ.

私は使用します ステイサー:

Stacerは、ユーザーがさまざまな側面でシステム全体を管理するのに役立つオープンソースのシステムオプティマイザとアプリケーションモニタです。

サービスとプロセスも表示されます。 完全なGUIシステムツールボックス。

Ubuntu14.04の答えはまだここに欠けていることに注意してください。

@MarcelloNuccio:Ubuntu15.04以降、UpstartはSystemdを支持して非推奨になりました。

ネットワーキングについては、以下を参照してください。How to restart the networking service? - Ask Ubuntu

[これ](http://ryuslash.wordpress.com/2009/12/31/enablingdisabling-services-in-fedora-12/)Fedora12で立ち往生し、ここに上陸した人のために役立つでしょう。 Linkrot’chkconfig’があなたが探しているものである場合。

自動起動プログラムは、autostartマニフェストまたは*で設定されます。サービスいくつかの場所にあるファイルだけでなく、‘init.d`または’crontab’。 参照:upstart - How to start application after login on CentOS? - Unix & Linux Stack Exchange