Flat lay of business concept
Linuxサーバーを管理する上で、各種サービスの起動や停止、再起動といった操作は欠かせません。その中でも特によく使われるのが「systemctl start
」というコマンドです。これは、systemdを採用しているLinuxディストリビューションで、指定したサービスを手動で起動するためのコマンドです。本記事では、この「systemctl start
」コマンドについて、基本的な使い方から応用的な操作までをわかりやすく解説していきます。Linux初心者の方や、これからサーバー運用に携わる方にとって役立つ内容となっていますので、ぜひ参考にしてください。
systemctl
は、Linuxのサービスやプロセスを管理するためのコマンドであり、systemdという初期化システムの一部として提供されています。systemdは、Red Hat系(RHEL、CentOS、Fedora)やDebian系(Ubuntuなど)といった多くのLinuxディストリビューションで採用されている標準のinitシステムです。
systemctl
コマンドを使うことで、以下のような操作が可能です:
journalctl
と併用)その中でも「start
」は、サービスを今すぐ起動するための操作にあたります。
最も基本的な使い方は以下の通りです。
sudo systemctl start nginx
このコマンドは、Webサーバー「nginx」のサービスを起動します。ここでのポイントは、サービス名を正確に指定することです。大半のサービスはユニットファイルという形式で登録されており、そのユニット名の拡張子は .service
です。ですが、systemctl
では拡張子を省略して指定することが可能です。
例:
nginx.service
systemctl start nginx
(拡張子不要)なお、コマンドの前にsudo
をつけるのは、サービス操作が一般ユーザーでは制限されているためです。root権限が必要となる場合が多いので注意しましょう。
実際によく使用されるサービスと、それを起動するコマンド例をいくつか紹介します。
sudo systemctl start httpd
sudo systemctl start mysqld
sudo systemctl start sshd
sudo systemctl start postfix
起動するサービスによって、設定ファイルや依存するプロセスが異なるため、事前に設定内容を確認しておくとトラブルを防げます。
systemctl start
で起動したあと、サービスが正しく起動したか確認することも重要です。以下のコマンドで状態確認ができます。
sudo systemctl status nginx
このコマンドでは、サービスの**現在の状態(アクティブかどうか)**や、ログの一部が表示されます。特にActive:
という項目で「active (running)」と表示されていれば、起動に成功しています。
また、ログをより詳しく確認したい場合は、journalctl
コマンドを使います:
sudo journalctl -u nginx
systemctl start
は**「今すぐ」**サービスを起動するコマンドですが、次回再起動時にも自動で起動したい場合は、enable
コマンドを併用する必要があります。
sudo systemctl enable nginx
このようにすることで、次回のシステム起動時にも自動的にnginxが起動するようになります。逆に、disable
コマンドで自動起動を解除することもできます:
sudo systemctl disable nginx
systemctl start
を実行しても起動できない場合、以下の原因が考えられます。
サービスが存在しない場合、次のようなエラーが表示されます。
Failed to start nginx.service: Unit nginx.service not found.
この場合は、まずサービスをインストールする必要があります。
設定ファイルにエラーがある場合、起動に失敗します。ログを確認し、設定ファイルの構文や内容を見直しましょう。
sudo journalctl -xe
既に同じポートを使用している他のプロセスがあると、サービスは起動に失敗します。netstat
やss
コマンドでポートの使用状況を確認しましょう。
複数のサービスを一括で起動したい場合、以下のようにコマンドを連続して実行することも可能です:
sudo systemctl start nginx mysql php-fpm
また、スクリプト内に組み込んで、自動化処理の一部として活用することもあります。たとえば、Webサーバー構築スクリプトの中にこのコマンドを記述しておくと、環境構築の手間を省けます。
systemctl start
は、Linuxでサービスを今すぐ起動するための基本的かつ非常に重要なコマンドです。運用の現場では、日常的に使われる操作の一つですので、構文だけでなく「なぜ起動できないのか」「有効化との違いは?」といった周辺知識も理解しておくことが大切です。
また、サービスを管理する上でsystemctl
の他のサブコマンド(stop
, restart
, status
, enable
, disable
など)と併せて習得することで、Linuxサーバーの操作スキルがぐっと高まります。ぜひ本記事を参考に、systemctl
コマンドを使いこなせるようになってください。