新しいサービスをインストールし、そのアプリケーションをもう必要としないで削除しても、サービスは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です。体系化されたサービスが存在する場所。
あなたはおそらくreset-failed
を探しています:
$ Sudo systemctl reset-failed
$
Systemdのmanページから:
reset-failed [PATTERN...]
指定された装置の「失敗」状態をリセットするか、装置名が渡されていない場合は、すべての装置の状態をリセットしてください。ユニットが何らかの理由で失敗した場合(すなわち、プロセスがゼロ以外のエラーコードで終了した、異常終了した、またはタイムアウトした)、自動的に「失敗」状態に入り、サービスが終了するまで管理者によって終了コードとステータスが記録されます。このコマンドで再起動またはリセットされます。
アンインストールしたようですが、systemdフックは削除されていません。
# systemctl disable [servicename]
@ mark-lakata の回答に追加し、rm
コマンドに必要な注意力を覚えておいてください。 [chkconfig]
はプロセスを単純化することができます!( chkconfigについて読むにはここをクリックしてください )
コマンドのリストを再実行するには
systemctl stop [servicename]
chkconfig [servicename] off
systemctl daemon-reload
systemctl reset-failed
注:最初のコマンドは、現在のセッションでサービスを実行し続けるかどうかによって異なります(この質問ではコマンドを使用する必要があります)。
2番目のコマンドは、サービスの無効化と削除(シンボリックリンクに従って)の両方を行います。
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はゴースト(見つからない)サービスを一覧表示できます。
(*)サービスが他のユニットで言及されているが存在しない場合systemdはまだユニットファイルがなくても見つからない状態でそのサービスをリストします...あなたはテキスト検索でそのサービスを使用しているユニットを検索できます。そしてそれらのユニットを編集します(後でそのサービスをインストールする予定がある場合はお勧めできません)