【初心者向け】Linux systemctlの使い方まとめ|サービスの起動・停止・自動起動をマスターしよう

Linux

Linuxサーバーを使っていると、こんなことってありませんか?

  • 「Webサーバーが起動していない」
  • 「パソコンを再起動したら、いつものサービスが動いていない」
  • 「サービスが止まってしまった…どうやって直そう?」

そんなときに役立つのが、systemctl(システム・シーティーエル)コマンドです。

systemctlは、Systemd(システムディー)というプログラム管理システムの一部で、今のLinuxでは標準的に使われています。

この記事では、systemctlの基本的な使い方を、初心者の方にも分かりやすく説明します。

スポンサーリンク

systemctlって何?

Systemdの管理ツール

systemctlは、Linuxでサービス(バックグラウンドで動くプログラム)やプロセスを管理するためのコマンドです。

昔使われていたserviceコマンドの新しいバージョンで、CentOS 7以降、Ubuntu 16.04以降などで主に使われています

基本的な書き方

systemctl [何をするか] [サービス名]

例えば:

systemctl start nginx

これで「nginxというサービスを起動する」という意味になります。

よく使うsystemctlコマンド一覧

やりたいことコマンド使用例
サービスを起動するstartsystemctl start httpd
サービスを止めるstopsystemctl stop nginx
サービスを再起動するrestartsystemctl restart sshd
設定ファイルを読み直すreloadsystemctl reload apache2
サービスの状態を見るstatussystemctl status mysql
自動起動をオンにするenablesystemctl enable docker
自動起動をオフにするdisablesystemctl disable postgresql
動いているか確認するis-activesystemctl is-active sshd
自動起動がオンか確認するis-enabledsystemctl is-enabled crond

状態確認に便利なコマンド

サービスの今の状態を見る

systemctl status nginx

このコマンドを使うと、サービスが動いているか(active)どうかと、最近のログの一部が表示されます。

今動いているサービス一覧を見る

systemctl list-units --type=service

このコマンドで、今動いているサービスがすべて表示されます。

自動起動設定の操作

パソコン起動時に自動でサービスを起動したいとき

systemctl enable httpd

これを実行すると、パソコンを起動するたびに、httpdサービスが自動で立ち上がるようになります。

自動起動をやめたいとき

systemctl disable httpd

これで、パソコンを再起動してもサービスが勝手に起動しなくなります

サービスがうまく動かないときの確認方法

サービスに問題があるときは、次の順番で確認してみましょう:

  1. systemctl status サービス名でエラーの内容を見る
  2. journalctl -xeで詳しいログを表示する
  3. ps aux | grep サービス名でプロセスが本当に存在するか調べる

よくある質問

serviceコマンドと何が違うの?

serviceコマンドは古いシステム(SysVinit)用のもので、systemctl新しいSystemd専用です。最近のLinuxディストリビューションでは、systemctlを使うのが標準です。

systemctlコマンドはsudoが必要?

ほとんどの操作でsudoが必要です。一般ユーザーでは権限が足りません。

sudo systemctl start apache2

サービス名が分からないときは?

以下のコマンドで探せます:

systemctl list-unit-files --type=service

または:

systemctl | grep nginx

まとめ:systemctlを使いこなせばLinux操作が楽になる!

systemctlを使えば、サービスの起動・停止・監視・自動化まで一つのコマンドで管理できます。特にサーバー運用をするときには欠かせないコマンドなので、基本操作をしっかり覚えておきましょう。

覚えておきたい基本コマンド

やりたいことコマンド
サービスを起動するsystemctl start サービス名
状態を確認するsystemctl status サービス名
再起動するsystemctl restart サービス名
自動起動を設定するsystemctl enable サービス名
自動起動を解除するsystemctl disable サービス名

コメント

タイトルとURLをコピーしました