web-dev-qa-db-ja.com

Systemdでユニットを削除する(無効化/マスクしない)方法は?

時々私は誤って新しいユニットを作成し、それから/ etc/systemdに移動してユニットを探し、関連するすべてのファイル/スクリプト/リンク/ etcを削除する必要があります。

もっと良い方法はありますか?ユニット名に関連付けられたすべてを削除する単一のコマンドのように?

7
Howard

ユニット名に関連付けられたすべてを削除する単一のコマンドのように?

ユニットの関連付けを解除するコマンドとユニットファイルを消去するコマンドの2つが必要だと思います。

systemd enableを実行した後、systemdが自動的に作成するファイルとシンボルリンク

もしかして systemctl enable ...。とにかく、man systemctl

無効[名前...]

1つ以上のユニットを無効にします。これにより、指定されたユニットファイルへのすべてのシンボリックリンクがユニット構成ディレクトリから削除されるため、enableによって行われた変更が取り消されます。ただし、これによりユニットファイルへのシンボリックリンクがすべて削除されることに注意してください(つまり、手動での追加を含む)。実際にenableによって作成されたものだけではありません。この呼び出し/は、ユニットの無効化が完了した後で、systemdデーモン構成を暗黙的にリロードします。このコマンドは、無効にされているユニットを暗黙的に停止しないことに注意してください。

ユニットをターゲットに関連付けるためのシンボリックリンクがあります-これはsysVで使用されるシンボリックリンクと同じですrcN.dランレベルディレクトリ。1 ユニットを無効にするとそれらが削除されます。これは、ユニットがどのようなターゲットでも実行できるためです。

それらがなくなると、残っているのは.serviceおそらく作成したファイル。それを消去/削除すれば完了です。


1.明確にするために、sysVを使用していないので、その観察結果が何の意味もない場合でも、心配する必要はありません。あるかもしれません /etc/rcN.dシステム上のディレクトリ。無視してください。

4
goldilocks

insservはその仕事をする必要があります-sysVinitまたはsystemD

参照:OpenSuSE

例:insserv -d nfsnfsサービスの起動を無効にします。

0
Nils