新しいサービスをインストールした後、そのアプリケーションはもういらないと判断して削除した場合、systemctl
の出力にエラーとしてサービスが表示されます
これはどこから来ているのか、どうすれば徹底的に取り除くことができるのか
277 emel 2012-12-01
私のサービス抹消レシピ(rm
発言に注意!)
systemctl stop [servicename]
systemctl disable [servicename]
rm /etc/systemd/system/[servicename]
rm /etc/systemd/system/[servicename] # and symlinks that might be related
rm /usr/lib/systemd/system/[servicename]
rm /usr/lib/systemd/system/[servicename] # and symlinks that might be related
systemctl daemon-reload
systemctl reset-failed
systemd サービスが /etc/init.d の古いスタイルのスクリプトを「ラップ」している可能性があるので、それもきれいにした方がいいかもしれませんが、そこには systemd サービスが住んでいるわけではありません
440 Mark Lakata 2015-07-06
reset-failed
を探しているのではないでしょうか
$ sudo systemctl reset-failed
$
systemd の man ページから
reset-failed [PATTERN...]
指定されたユニットの「失敗」状態をリセットするか、ユニット名が指定されていない場合は全てのユニットの状態をリセットします。ユニットに何らかの障害が発生した場合(エラーコードが0以外の場合や異常終了、タイミングアウトなど)、そのユニットは自動的に “failed “状態になり、その終了コードと状態は、このコマンドでサービスが再起動されるかリセットされるまで、管理者によるイントロスペクションのために記録されます
43 Vebjorn Ljosa 2016-04-13
アンインストールしたようですが、systemdフックを削除していません
# systemctl disable [servicename]
31 nerdwaller 2012-12-01
@mark-lakataさんの回答に追加して、rm
コマンドに必要な注意点を頭に入れておきます。[chkconfig]
で簡単にできます!(click here to read about chkconfig)
コマンドのリストを再度表示するには
systemctl stop [servicename]
chkconfig [servicename] off
or 新しいシステムsystemctl disable [servicename]
の場合systemctl daemon-reload
systemctl reset-failed
注意: 1 番目のコマンドは、現在のセッションでサービスを実行し続けるかどうかによってオプションです (この質問ではコマンドを使用してください)
2 番目のコマンドは、サービスの無効化と削除 (シンボリックリンクに続く) の両方を行います
8 garlicFrancium 2018-07-29
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
ゴーストサービス(見つからない)
Systemdは様々な理由でユニットが削除されても、ゴースト(not-found)サービスをリストアップすることができます
- ユニットが systemd ディレクトリの一つに存在していることを確認しました
- ユニットは終了しませんが、systemdディレクトリの1つにファイルリンクが残っています
- このサービスは他のユニット*でも利用されています
(*) 他のユニットでサービスが言及されていても存在しない場合、ユニットファイルがなくても、systemd はそのサービスを not-found の状態でリストアップします… どのユニットがそのサービスを利用しているかをテキスト検索で検索し、そのユニットを編集することができます (後からそのサービスをインストールする予定がある場合はお勧めしません)
ソース。Linuxhacks.org ディスクロージャー: 私は Linuxhacks.org の所有者です
2 intika 2018-11-07
シンプルなオネリかもしれません
service=YOUR_SERVICE_NAME; systemctl stop $service && systemctl disable $service && rm /etc/systemd/system/$service && systemctl daemon-reload && systemctl reset-failed
service
に削除したいサービスを設定してください。例:service=gunicorn.service
1 Leonleon1 2020-07-11