【初心者向け】Ubuntuでサービスを操作する方法|systemctlの基本から応用まで解説!

Linux

Ubuntuを使っていると、こんな場面に出くわすことがあります:

  • 「Apacheが動いていない、手動で起動したい」
  • 「設定を変更したので、サービスを再起動したい」
  • 「そもそも何のサービスが起動しているのか分からない」

そんなときに使えるのが、systemctl(システムシーティーエル)コマンドを使ったサービス操作です。

この記事では、Ubuntuでのサービスの起動・停止・再起動・状態確認など、基本的な操作方法を中心に分かりやすく紹介します!

スポンサーリンク

Ubuntuのサービス管理はsystemd(systemctl)で行う

Ubuntu 15.04以降では、systemd(システムディー)という仕組みが使われています。

そのため、サービスの制御にはsystemctlコマンドを使用します。

古いUbuntuではserviceコマンドも使えますが、現在はsystemctlが標準です。

基本:サービスの操作コマンド一覧

やりたいことコマンド使用例
サービスを起動するsudo systemctl start サービス名sudo systemctl start apache2
サービスを止めるsudo systemctl stop サービス名sudo systemctl stop nginx
サービスを再起動するsudo systemctl restart サービス名sudo systemctl restart ssh
サービスの状態を見るsystemctl status サービス名systemctl status mysql
自動起動をオンにするsudo systemctl enable サービス名sudo systemctl enable apache2
自動起動をオフにするsudo systemctl disable サービス名sudo systemctl disable cups
自動起動がオンか確認するsystemctl is-enabled サービス名systemctl is-enabled ssh

例:Apache(Webサーバー)を操作する場合

# Apacheを起動する
sudo systemctl start apache2

# Apacheを止める
sudo systemctl stop apache2

# Apacheを再起動する
sudo systemctl restart apache2

# Apacheの状態を確認する
systemctl status apache2

# パソコン起動時にApacheを自動起動する
sudo systemctl enable apache2

# 自動起動をやめる
sudo systemctl disable apache2

ポイントapache2はサービス名です。他のサービスでは名前が変わります(後で説明します)。

サービス名の調べ方:まずは一覧表示!

現在動いているサービスを見る

systemctl list-units --type=service

すべてのサービスと設定状態を見る

systemctl list-unit-files --type=service

このコマンドで、どんなサービスがあるかと、自動起動がオンかオフかが分かります。

状態の意味(systemctl statusの見方)

systemctl status apache2を実行すると、こんな表示が出ます:

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled)
   Active: active (running) since Fri 2025-05-24 09:00:00 JST; 1h ago

状態の意味

状態意味
active (running)正常に動いている
inactive止まっている
failed起動に失敗した
activating起動している最中
deactivating停止している最中

よく使うサービス名と用途

サービス名何に使う?
apache2Apache Webサーバー
nginxNginx Webサーバー
sshリモート接続(SSH)
mysql / mariadbデータベース
ufwファイアウォール(セキュリティ)
cupsプリンター
NetworkManagerネットワーク管理

大切なポイント:必ずsystemctl statusで状態を確認してから操作しましょう!

古いserviceコマンドとの違い

# 古い書き方(まだ動くけど推奨されない)
sudo service apache2 start

# 新しい書き方(こちらを使おう)
sudo systemctl start apache2

今後はsystemctlを使う習慣をつけるのがおすすめです。

トラブル時のヒント

サービスが起動できない・すぐ止まってしまう

journalctl -xe

このコマンドで、systemdの詳しいログが見られます。エラーの原因が分かることが多いです。

特定のサービスのログだけ見たい

journalctl -u apache2

-uの後にサービス名を書くと、そのサービスのログだけが表示されます。

設定ファイルを変更した後

設定ファイルを変更したときは、以下の順番で作業しましょう:

  1. 設定ファイルの文法チェック(サービスによって方法が違う)
  2. sudo systemctl restart サービス名で再起動
  3. systemctl status サービス名で正常起動を確認

まとめ:Ubuntuのサービス操作はsystemctlがカギ!

Ubuntuでのサービス操作は、systemctlコマンドを使いこなすことで、自由自在に制御できます。トラブル時の原因を調べたり、セキュリティ対策として不要なサービスを止めたりするのにも役立ちます。

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

やりたいことコマンド例
サービスを起動sudo systemctl start サービス名
サービスを停止sudo systemctl stop サービス名
サービスを再起動sudo systemctl restart サービス名
状態を確認systemctl status サービス名
自動起動の設定enabledisableを使う
ログを確認journalctl -xe

操作の流れ

  1. まず状態確認systemctl status サービス名
  2. 必要に応じて操作:start/stop/restart
  3. 結果を確認:もう一度systemctl statusでチェック

コメント

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