How to start, stop, and restart services in Linux

How to stop and start services in Linux

システム管理者として、あなたはかなり多くのことを処理するように課せられています。 そして、そのリストは日に日に長く、複雑になっていきます。 さらに悪いことに、状況は変わります。 昔、Linuxのサービスを開始または停止するには、ターミナルウィンドウを開いて、/etc/rc.d/(または、使用しているディストリビューションによっては、/etc/init.d)に入り、サービスを見つけて、/etc/rc.d/SERVICE start|stop|restart(SERVICEは、開始、停止、または再起動するサービスの名前)のコマンドを発行しなければならなかったことを覚えています。 あるディストリビューションで /etc/rc.d/service start を実行しようとすると、/etc/init.d/service start にすべきだったと気づくことがありました。 サービスがどのように停止、開始、および再起動されるかは、今では完全に意味をなしています。 さらに良いことに、それは (ほとんどの場合) 普遍的なものになりました。

そんな感じです。

サービスを開始、停止、再起動する方法は、ディストリビューションが systemd と init のどちらを使用しているかによって異なります。 その場合でも、複数の手段でそれらのサービスを制御できるかもしれません。

systemctl vs. service

これがこの問題の核心です。

  • systemctl
  • service

どちらを使用するかは、ディストリビューションが systemd や init を使用しているかどうかによります。 最近のほとんどのディストリビューションはsystemdに移行しているので、systemctlがサービスマネージャとして選ばれています。 しかし、古い習慣はなかなか抜けないもので、多くの管理者はいまだに古いserviceコマンドを使い続けています。 幸いなことに、systemd の開発者は service を残し、systemctl にリダイレクトしました。

さらに複雑なのは、インストールしたランダムなサービスが service や systemctl ツールに更新されておらず、/etc/rc.d (または /etc/init.d) から手動で起動しなければならないことです。

しかし、ここではベスト プラクティスを求めています。そして、Linux 上のアプリケーションの起動、停止、再起動のためのベスト プラクティスは、systemctl に始まり、systemctl に終わるのです。

systemctl の使用

複雑さはここで終わります。 実際、Linux でのサービスの停止/開始/再起動は非常にシンプルになりました。 例えば、CentOSを使っていて、Apacheサーバーを停止したいとします。 これを行うには、ターミナル ウィンドウを開いて次のコマンドを実行します:

 sudo systemctl stop httpd 

Apache サーバーが停止し、bash プロンプトに戻ります。

 sudo systemctl start httpd 

サービスが開始され、bashプロンプトに戻ります。

同じサービスを再起動するには、次のコマンドを実行します:

 sudo systemctl restart httpd 

サービスが再起動され、bashプロンプトに戻ります。

上記のコマンドは、CentOS、Ubuntu、Redhat、Fedora、Debian などで実行できます。

service の使用法

面白いことに、service コマンドは、systemd や systemctl に移行したディストリビューションでも機能します。 つまり、Linux でサービスを再起動する必要があるときに、直感的に service と入力しても、「Unknown command」エラーは発生しないのです。 serviceの場合、そのコマンドはsystemctlにリダイレクトされます。

図 A

図 A

systemctl にリダイレクトされる service コマンド。

serviceコマンドの使い方は、systemctlとは少し違います。

 sudo service httpd startsudo service httpd stopsudo service httpd restart 

いずれの場合も、service が systemctl にリダイレクトされますが、起動・停止・再起動しようとしているサービスは成功します。

systemctl の機能の詳細については、man systemctl コマンドを実行し、man ページを読んでみてください。

Also see

  • How to monitor your Linux servers with nmon (TechRepublic)
  • How to install Stacer for quick Linux system optimization (TechRepublic)
  • How to use wget to download files to your GUI-less Linux server (TechRepublic)
  • How to prevent Ubuntu from overwriting /etc/resolv.conf (TechRepublic)
  • 改良された新しいSambaファイルサーバーをリリース (ZDNET)
sysctlhero.jpg
Image: ジャック・ウォーレン

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です