回答:
サービス抹消のための私のレシピ(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の古いスタイルのスクリプトを「ラップ」する可能性があるため、それもクリーンアップすることができますが、systemdサービスが存在する場所ではありません。
/etc/init.d/[servicename]
実行する前に削除する必要がありましたsystemctl reset-failed
systemctl cat [servicename]
。
あなたはおそらく探していreset-failed
ます:
$ sudo systemctl reset-failed
$
systemdのmanページから:
reset-failed [PATTERN...]
指定されたユニットの「失敗」状態をリセットします。ユニット名が渡されない場合は、すべてのユニットの状態をリセットします。ユニットが何らかの方法で失敗した場合(つまり、ゼロ以外のエラーコードでプロセスが終了、異常終了またはタイムアウト)、自動的に「失敗」状態になり、サービスが終了するまで管理者による内省のために終了コードとステータスが記録されますこのコマンドで再起動またはリセットされます。
@ mark-lakataの回答に追加し、rm
コマンドに必要な注意力を念頭に置いてください。[chkconfig]
プロセスを簡素化できます!(chkconfigについて読むにはここをクリック)
コマンドのリストを再度繰り返すには:
systemctl stop [servicename]
chkconfig [servicename] off
systemctl daemon-reload
systemctl reset-failed
注:最初のコマンドは、現在のセッションでサービスを実行し続けるかどうかに応じてオプションです(この質問に関しては、コマンドを使用する必要があります)。
2番目のコマンドは、サービスの無効化と削除(シンボリックリンクの追跡)の両方を処理します。
chkconfig
SysVinitサービスを有効/無効にする元のコマンドでした。を使用するシステムsystemd
では、下位互換性コマンドとして存在する場合があります。しかし、ネイティブsystemctl
コマンドは同じくらい簡単ですsystemctl disable [servicename]
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)
システム更新:
systemctl daemon-reload
systemctl reset-failed
ゴーストサービス(見つかりません):
Systemdは、多くの理由でユニットが削除された場合でも、ゴースト(未検出)サービスをリストできます。
(*)サービスが他のユニットで言及されていても存在しない場合、systemdはユニットファイルがなくても、そのサービスを未検出の状態でリストします...テキスト検索でそのサービスを使用しているユニットを検索できますそれらのユニットを編集します(そのサービスを後でインストールする場合はお勧めしません)
/usr/lib/systemd/system
とも/etc/systemd/system/
。参照については、access.redhat.com