Systemd のサービスを削除する方法
新しいサービスをインストールして、そのアプリケーションはもう要らないと判断して削除すると、そのサービスは systemctl
の出力に error として表示されたままになります。
新しいサービスをインストールして、そのアプリケーションはもう要らないと判断して削除すると、そのサービスは systemctl
の出力に error として表示されたままになります。
サービス抹消のための私のレシピ (rm
ステートメントに注意してください!)
systemctl stop [servicename]
systemctl disable [servicename]
rm /etc/systemd/system/[servicename]
rm /etc/systemd/system/[servicename] symlinks that might be related
systemctl daemon-reload
systemctl reset-failed
systemd サービスが /etc/init.d の古いスタイルのスクリプトを「ラップ」している可能性があるので、それもクリーンアップしたいかもしれませんが、それは not systemd サービスが住んでいる場所です。
おそらく、reset-failed
を探しているのではないでしょうか:
$ sudo systemctl reset-failed
$
systemd manページより:
reset-failed [PATTERN...]
指定したユニットの「失敗した」状態をリセットするか、ユニット名が渡されていない場合は、すべてのユニットの状態をリセットします。ユニットに何らかの障害が発生した場合(ゼロ以外のエラーコードでプロセスが終了する、異常終了する、タイミングアウトするなど)、自動的に「失敗した」状態になり、その終了コードと状態は、このコマンドでサービスが再開されるかリセットされるまで、管理者がイントロスペクションのために記録します。
アンインストールしたようですが、systemdフックを削除していないようです:
# systemctl disable [servicename]
(https://superuser.com/users/173246/mark-lakata)さんの回答に追加して、`rm`コマンドに必要な注意点を頭に入れておきましょう。[ ここをクリックして chkconfig について読む ](https://linux.die.net/man/8/chkconfig))
コマンドのリストをもう一度言います:
[chkconfig]
systemctl stop [servicename]
chkconfig [servicename] off
systemctl daemon-reload
注意: 1 番目のコマンドは、現在のセッションでサービスを実行し続けるかどうかに応じてオプションです (この質問ではコマンドを使用する必要があります)。
Systemdからのサービスの削除 :
Systemdは、サービスを削除するためにユニット(サービスを定義するためのファイル)を使用しています。ここでは、ユニットの場所のリストです:
/etc/systemd/system/ (and sub directories)
/usr/local/etc/systemd/system/ (and sub directories)
~/.config/systemd/user/ (and sub directories)
/usr/lib/systemd/ (and sub directories)
/usr/local/lib/systemd/ (and sub directories)
/etc/init.d/ (Converted old service system)
systemd をリフレッシュします :
systemctl daemon-reload
systemctl reset-failed
ゴーストサービス(not-found) :
Systemd は、多くの理由でユニットが削除された場合でも、ゴースト(not-found)サービスをリストアップすることができます
1.ユニットは、まだ systemd ディレクトリのいずれかに存在します 2.