50% off 全プラン、期間限定。料金は $2.48/mo
7分残り
サーバー及びOS

Ubuntuでsystemctl: Command Not Foundエラーを修正する方法

ニック・シルバー By ニック・シルバー 7分で読める 更新: 2025年2月20日
systemctl: command not foundエラーの解決方法

Linux のユーザー、特に Ubuntu のような最新のディストロを使っている開発者にとって、最も強力で便利なツールの一つが systemctlコマンド。このコマンドラインユーティリティは通常、systemd(システムおよびサービスマネージャー)と対話するために使用されます。

systemctl コマンドを使えば、システムサービスの管理、ステータス確認、開始や停止、システム起動時の自動実行設定ができます。便利ですよね。ただし systemctl コマンドが見つからないか認識されない場合は、次の問題に直面することになります。 "sudo: systemctl: コマンドが見つかりません" エラー

「systemctl: command not found」エラーが何を意味するのか、このエラーが発生する理由、そして解決方法について説明します。

systemctl: コマンドが見つかりません の意味は?

簡潔に言えば、「systemctl: command not found」エラーは、systemctl コマンドラインユーティリティが現在の環境で利用できない、またはアクセスできないことを意味します。これは様々な原因が考えられます。環境が非システム環境であるか、systemd パッケージがシステムにインストールされていないのいずれかが原因です。

systemd パッケージがインストールされていないか、お使いの Linux ディストロまたはバージョンが systemd を使用していない可能性があります。その場合、init.d のような古いサービス管理システムを使用しています。もう一つの可能性として、PATH 環境変数に systemctl が配置されているディレクトリが含まれていないため、シェルが見つけられないということも考えられます。

「systemctl: command not found」エラーの原因がどこにあるかをある程度把握したところで、実際に問題の場所を特定し、修正する方法を見ていきましょう。

systemctl: コマンドが見つかりません エラーの解決方法

以下のステップでは、お客様のシステムに systemd がインストールされているか、systemctl を使用しているかを確認し、systemctl のパスをチェックします。問題を確認した後、エラーを修正するための対応を行います。

1. システムが systemd を使用しているかどうかの確認

Ubuntu 以降、systemctl は systemd パッケージがインストールされている場合にのみ使用できるため、まず以下のコマンドを実行してシステムが systemd を使用するように設定されているか確認します。

ps -p 1 -o comm=

または、以下のコマンドで systemd のバージョンを確認することもできます。

systemd --version

出力が systemd の場合、systemd があなたのシステムの init システムです。Ubuntu の systemctl がインストールされているはずです。ただし、出力が init または別のプロセスマネージャーの場合は、システムが代替の初期化システムを使用しており、systemd に移行しない限り systemctl は機能しません。

Upstart や SysVinit といった古い初期化システムを使用している場合に、systemd に切り替えて systemctl を使用したい場合は、以下の手順に従ってください。

1. 次のコマンドを実行してsystemdをインストールし、systemctlをインストールします:

sudo apt install systemd-sysv

2. 次のコマンドを実行してシステムを再起動します:

sudo reboot

3. システムが現在systemdを使用していることを確認します:

ps -p 1 -o comm=

出力がsystemdになるはずです。

2. systemdが正しくインストールされていることを確認する

通常の場合、systemdがインストールされ、init システムとして実行されている場合、systemctlコマンドは正常に動作するはずです。そうでない場合、systemdパッケージが不足しているか、不正にインストールされている可能性があります。

Ubuntuの最小バージョン(Dockerコンテナやクラウドインスタンスなど)を使用している場合、systemdはデフォルトではインストールされていない可能性があります。systemdをインストールしてsystemctlをインストールするには、次のコマンドを実行してください:

sudo apt update
sudo apt install systemd

インストール後、systemctlコマンドが使用可能であるかを確認してください。

3. systemctlのPATHを確認する

systemctlコマンドが見つからないエラーの一般的な原因は、systemctlはインストールされているが、システムのPATHに含まれていない場合です。systemdバイナリが/bin、/usr/bin、/usr/local/binなどの標準的なディレクトリに存在するかを確認するには、次のコマンドを使用できます:

which systemctl

systemctlがPATHに含まれるディレクトリのいずれかで見つかった場合、次のような出力が得られます:

/usr/bin/systemctl

systemctlがPATHのディレクトリのいずれかで見つからない場合、whichコマンドは何も返しません。

ただし、systemctlがディレクトリで見つかった場合でも、systemctlが機能しない可能性があります。これは、systemctlが含まれていないディレクトリに配置されている可能性があるためです。このような状況では、次のコマンドを使用してsystemctlが配置されているディレクトリがシステムの一部であるかを確認する必要があります:

echo $PATH

出力は次のようになるはずです:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

次に、systemctlが配置されているディレクトリ(whichコマンドから取得)がecho $PATHコマンドの出力に含まれているディレクトリのリストに含まれているかを確認するだけです。

systemctlのディレクトリがecho $PATHの出力に含まれていない場合は、PATH変数に追加する必要があります。これを行うには、次のコマンドを実行する必要があります:

ため Bashシェルユーザーの場合、テキストエディターで~/.bashrcファイルを開きます:

nano ~/.bashrc

ファイルの最後に次の行を追加します:

export PATH=$PATH:/usr/bin

/usr/binはこの例ではsystemctlが配置されている典型的なディレクトリです。

CTRL + Xキーを押してファイルを保存して閉じ、Yキーを押して確認してから、Enterキーを押して保存します。

ため Zshユーザー、テキストエディターで~/.zshrcファイルを開きます:

nano ~/.zshrc

ファイルの最後に次の行を追加します:

export PATH=$PATH:/usr/bin

/usr/binはこの例ではsystemctlが配置されている典型的なディレクトリです。

CTRL + Xキーを押してファイルを保存して閉じ、Yキーを押して確認してから、Enterキーを押して保存します。

上記の手順を完了したら、echo $PATHコマンドを使用してsystemctlのディレクトリがPATHに追加されたことを確認します。これで、「systemctl: コマンドが見つかりません」エラーに遭遇することなくsystemctlを実行できるようになるはずです。

4. systemdの再インストール

前述の修正が機能せず、引き続きコマンドが見つからないエラーが発生している場合は、systemdを完全に再インストールすることで問題が解決される可能性があります。これを行うには、次のコマンドを実行してください:

sudo apt purge systemd
sudo apt install systemd

次に、このコマンドでシステムを再起動します:

sudo reboot

systemctl が正常に動作しているか確認してください。

5. systemd が正しく設定されているか確認する

systemd のインストールが正しく設定されていないため、「systemctl: コマンドが見つかりません」というエラーが発生することがあります。この問題を解決するには、以下のコマンドを実行するだけです。

sudo dpkg-reconfigure systemd

6. Windows Subsystem for Linux が古い (WSL)

Ubuntu を Windows Subsystem for Linux (WSL) で使用している場合、 WSL (Windows Subsystem for Linux) 古いバージョンの WSL (WSL 1 など) は systemctl をネイティブでサポートしていないため、前述の修正方法を使用しても systemctl を実行することができません。

systemctl の機能を利用するには、systemd をより適切にサポートする WSL 2 にアップグレードする必要があります。WSL を使用しているかどうか不確実な場合は、以下のコマンドで確認できます。

uname -a

出力に WSL が表示される場合、それが「systemctl: コマンドが見つかりません」エラーが表示されている理由です。

7. systemctl の代わりに sudo service コマンドを使用する

システムが systemd を使用していないため「systemctl: コマンドが見つかりません」エラーが発生している場合、sudo service コマンドを使用してサービスを管理できます。このコマンドは SysVinit や Upstart などの古い init システムで動作します。systemd ではなく init スクリプトに依存する Ubuntu システムに有用です。

たとえば、サービスを開始するには、以下のコマンドを実行します。

sudo service <service_name> start

最後に

systemd とそのコマンドラインユーティリティである systemctl は、SysVinit や Upstart などのほとんどの古い init システムに置き換わりました。systemd のモノリシックな設計と UNIX 哲学との不一致により、全員に好まれているわけではありませんが、systemd は一般的に主流の選択肢と見なされています。systemctl コマンドが利用できないと systemd の機能が大幅に制限されるため、systemctl コマンドが見つからないエラーを解決できたことを願っています。

よくあるご質問

systemctl とは何か。また「systemctl: コマンドが見つかりません」エラーとは何を意味するのか。

systemctl は、systemd を実行している Linux システム (Ubuntu など) でサービスを管理するために使用されるコマンドラインツールです。「systemctl: コマンドが見つかりません」エラーは、ツールが利用できないか、アクセスできない場合に発生します。通常、システムが systemd を使用していないか、systemd パッケージがインストールされていないためです。

systemctl はすべてのバージョンの Ubuntu で利用可能ですか。

いいえ、systemctl はすべてのバージョンの Ubuntu で利用可能ではありません。systemctl は systemd init システムの一部であり、最新の Ubuntu バージョン (15.04 以降) ではデフォルトです。古いバージョンまたは特定の最小限のインストールでは、代わりに SysVinit や Upstart などの代替 init システムを使用する場合があります。

共有

ブログから最新記事

読み続ける。

Cosmos Cloudで実行できる最高のセルフホストアプリ - Cosmosダッシュボード周辺のアプリパネル付きカバー画像。
サーバー及びOS

Cosmos Cloudで実行できる最高のセルフホストアプリ: ファイル、メディア、パスワード管理、自動化など

Maybe - Cosmos Cloudをセットアップ済みで、どのアプリが相性良いか確認したい場合、またはCosmosを決めきれずに相性を見たい場合。

ニック・シルバーニック・シルバー 16分で読む
Dockerアプリ管理向けPortainer vs Cosmos Cloud - ハイブリッドセットアップ図とネオン操作ブロック付きカバー。
サーバー及びOS

Portainer vs Cosmos Cloud: Dockerアプリ管理に最適な選択肢

Dockerの基本を理解していて、成長するアプリスタックをより簡潔に実行する方法を探しているなら、Portainer vs Cosmos Cloudの簡潔な回答はこちら。Portainerはより直接的な制御に優れています。

ニック・シルバーニック・シルバー 14分読む
Cosmos Cloud vs CasaOS vs Umbrel - 3つのセルフホストパスが1つの抽象的なクラウドネットワーク世界の中に表示される機能図。
サーバー及びOS

Cosmos Cloud vs CasaOS vs Umbrel: あなたのセットアップに最適なセルフホストプラットフォーム

簡潔に言うと、CasaOSは最も始めやすく、Umbrelは最もクリーンなキュレーション感があり、ドメイン管理をより細かく制御したい場合はCosmos Cloudが適切です。

ニック・シルバーニック・シルバー 11分の読み取り

デプロイの準備はできていますか? $2.48/月からの価格

2008年創業の独立系クラウド。AMD EPYC、NVMe、40 Gbps。14日間返金保証。