Categories: linux

systemctl startコマンドの基本と使い方:Linuxでサービスを起動する方法

Linuxサーバーを管理する上で、各種サービスの起動や停止、再起動といった操作は欠かせません。その中でも特によく使われるのが「systemctl start」というコマンドです。これは、systemdを採用しているLinuxディストリビューションで、指定したサービスを手動で起動するためのコマンドです。本記事では、この「systemctl start」コマンドについて、基本的な使い方から応用的な操作までをわかりやすく解説していきます。Linux初心者の方や、これからサーバー運用に携わる方にとって役立つ内容となっていますので、ぜひ参考にしてください。


systemctlとは何か?

systemctlは、Linuxのサービスやプロセスを管理するためのコマンドであり、systemdという初期化システムの一部として提供されています。systemdは、Red Hat系(RHEL、CentOS、Fedora)やDebian系(Ubuntuなど)といった多くのLinuxディストリビューションで採用されている標準のinitシステムです。

systemctlコマンドを使うことで、以下のような操作が可能です:

  • サービスの起動・停止・再起動
  • サービスの有効化(起動時に自動で実行)・無効化
  • サービスの状態確認
  • サービスのログ確認(journalctlと併用)

その中でも「start」は、サービスを今すぐ起動するための操作にあたります。


systemctl start <サービス名> の基本構文

最も基本的な使い方は以下の通りです。

sudo systemctl start nginx

このコマンドは、Webサーバー「nginx」のサービスを起動します。ここでのポイントは、サービス名を正確に指定することです。大半のサービスはユニットファイルという形式で登録されており、そのユニット名の拡張子は .service です。ですが、systemctlでは拡張子を省略して指定することが可能です。

例:

  • 正式名称:nginx.service
  • 指定例 :systemctl start nginx(拡張子不要)

なお、コマンドの前にsudoをつけるのは、サービス操作が一般ユーザーでは制限されているためです。root権限が必要となる場合が多いので注意しましょう。


よく使われるサービス例

実際によく使用されるサービスと、それを起動するコマンド例をいくつか紹介します。

  • Webサーバー(Apache) sudo systemctl start httpd
  • データベースサーバー(MySQL) sudo systemctl start mysqld
  • SSHサーバー sudo systemctl start sshd
  • Postfix(メールサーバー) sudo systemctl start postfix

起動するサービスによって、設定ファイルや依存するプロセスが異なるため、事前に設定内容を確認しておくとトラブルを防げます。


サービスの状態を確認するには

systemctl startで起動したあと、サービスが正しく起動したか確認することも重要です。以下のコマンドで状態確認ができます。

sudo systemctl status nginx

このコマンドでは、サービスの**現在の状態(アクティブかどうか)**や、ログの一部が表示されます。特にActive:という項目で「active (running)」と表示されていれば、起動に成功しています。

また、ログをより詳しく確認したい場合は、journalctlコマンドを使います:

sudo journalctl -u nginx

startとenableの違いに注意

systemctl startは**「今すぐ」**サービスを起動するコマンドですが、次回再起動時にも自動で起動したい場合は、enableコマンドを併用する必要があります。

sudo systemctl enable nginx

このようにすることで、次回のシステム起動時にも自動的にnginxが起動するようになります。逆に、disableコマンドで自動起動を解除することもできます:

sudo systemctl disable nginx

startコマンドのエラー時の対処法

systemctl startを実行しても起動できない場合、以下の原因が考えられます。

1. サービスがインストールされていない

サービスが存在しない場合、次のようなエラーが表示されます。

Failed to start nginx.service: Unit nginx.service not found.

この場合は、まずサービスをインストールする必要があります。

2. 設定ファイルにミスがある

設定ファイルにエラーがある場合、起動に失敗します。ログを確認し、設定ファイルの構文や内容を見直しましょう。

sudo journalctl -xe

3. ポートの競合

既に同じポートを使用している他のプロセスがあると、サービスは起動に失敗します。netstatssコマンドでポートの使用状況を確認しましょう。


systemctl startの応用的な使い方

複数のサービスを一括で起動したい場合、以下のようにコマンドを連続して実行することも可能です:

sudo systemctl start nginx mysql php-fpm

また、スクリプト内に組み込んで、自動化処理の一部として活用することもあります。たとえば、Webサーバー構築スクリプトの中にこのコマンドを記述しておくと、環境構築の手間を省けます。


まとめ

systemctl startは、Linuxでサービスを今すぐ起動するための基本的かつ非常に重要なコマンドです。運用の現場では、日常的に使われる操作の一つですので、構文だけでなく「なぜ起動できないのか」「有効化との違いは?」といった周辺知識も理解しておくことが大切です。

また、サービスを管理する上でsystemctlの他のサブコマンド(stop, restart, status, enable, disableなど)と併せて習得することで、Linuxサーバーの操作スキルがぐっと高まります。ぜひ本記事を参考に、systemctlコマンドを使いこなせるようになってください。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。