50% off 全プラン対象、期間限定。月額 $2.48/mo
残り7分
サーバーとOS

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

Nick Silver By Nick Silver 読了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: Command Not Found は何を意味するか?

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で動かせるおすすめセルフホストアプリ: ファイル、メディア、パスワード、自動化など!

Cosmos Cloudをセットアップ済みで、どのアプリと相性が良いか知りたい方もいれば、まだCosmosを選ぶか決めかねていて、自分のワークフ

Nick SilverNick Silver 読了16分
Dockerアプリ管理におけるPortainer vs Cosmos Cloudのカバー。ハイブリッド構成図とネオン調のops vs accessブロック。
サーバーとOS

Portainer vs Cosmos Cloud: Dockerアプリ管理に最適なのは?

Dockerをすでに理解していて、増えていくアプリスタックをよりすっきり運用したい方へ、Portainer vs Cosmos Cloudの結論をお伝えします。Portainerは直接

Nick SilverNick Silver 読了14分
Cosmos Cloud vs CasaOS vs Umbrelの特集グラフィック。抽象的なクラウドネットワーク世界の中に3つのセルフホストの選択肢を表示。
サーバーとOS

Cosmos Cloud vs CasaOS vs Umbrel: あなたの環境に合うセルフホスト型プラットフォームは?

結論として、CasaOSは今でも最も始めやすく、Umbrelは最もすっきりとした厳選感があり、Cosmos Cloudはドメ

Nick SilverNick Silver 読了11分

デプロイの準備はできましたか? 月額2.48ドルから。

2008年から独立運営のクラウド。AMD EPYC、NVMe、40 Gbps。14日間返金保証。