回答:
サービスがの場合、enabled
どこかにシンボリックリンクがあります
/etc/systemd/system
ほとんどの場合、どこかにあるユニットファイルに
/lib/systemd/system
役立つのはenable
、サービスの場合、作成されたリンクとターゲットの完全なパスが標準出力に出力されることです。
サービスを無効にすると、シンボリックリンクが削除されるため、ユニットファイル自体は影響を受けませんが、次のブート時、systemdの読み取り時にサービスはロードされません/etc/systemd/system
。
ただし、無効なサービスはロードでき、それに依存するサービスが開始されると開始されます。enable
そしてdisable
唯一のconfigure自動起動ユニットの動作、および状態を容易に上書きされます。
マスクされたサービスは、その単位のファイルへのシンボリックリンクであるものです/dev/null
。これにより、別の有効なサービスで必要な場合でも、サービスをロードすることが「不可能」になります。
あなたの場合はmask
サービス、シンボリックリンクが作成されたから/etc/systemd/system
に/dev/null
他の場所でそのままオリジナルのユニットファイルを残して、。いつunmask
シンボリックリンクが削除されたサービス。
ただし、これらのコマンドが常に尊重されるわけではないことに気付きました。
ほとんどのサービスをマスクしようとすると失敗します。
$ sudo systemctl mask bluetooth.service
Failed to execute operation: Invalid argument
もちろん、最初にサービスを停止しました。@Anwarは、マスキングは重要でないサービスでのみ可能であることを示唆しています。
自分でマスクしない限り、マスクされたサービスのマスク解除も失敗します(サイレント)。私は信じてへのシンボリックリンクの形を除いて、サービスの任意の場所にはユニットファイルが存在しないため、これは/dev/null
、この時点では、/lib/systemd/system
:
$ file $(locate fuse.service)
/lib/systemd/system/fuse.service: symbolic link to /dev/null
$ sudo systemctl unmask fuse.service
$ systemctl status fuse
● fuse.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
実際にマスクされたサービスx11-commonのマスクを解除するには、とへのシンボリックリンクを削除する必要が/dev/null
ありましたsudo apt-get install --reinstall x11-common && sudo systemctl daemon-reload
。クエリを実行するとsystemctl status x11-common
、緑色の丸いサービスが表示され、ユニットファイルはありませんが、ロードされてアクティブ(終了)になっています。
詳細については、Systemctlの使用方法に関するこの記事を参照してください。
systemctl status x11-common ● x11-common.service Loaded: masked (/dev/null; bad) Active: inactive (dead)
。それは悪いですか?しかし、私はUbuntuではなくDebianを使用しています。とにかく、いい説明。ありがとうございました。
とても簡単です。
systemctl start
、systemctl stop
:問題のユニットをすぐに開始(停止)します。systemctl enable
、systemctl disable
:起動時に自動起動するユニットをマーク(マーク解除)します(ユニット固有の方法、[Install]
セクションで説明)。systemctl mask
、systemctl unmask
:問題のユニットを開始するすべての試みを許可しません(許可します)(手動で、またはデフォルトのブートターゲットの依存関係を含む他のユニットの依存関係として)。systemdでの自動起動のマーキングは、デフォルトの起動ターゲットから問題のユニットへの人為的な依存関係を追加することで実装されるため、「マスク」も自動起動を許可しないことに注意してください。参考文献:systemctl(1) 。
その他:Lennart Poettering(2011-03-02)。 「オフの3つのレベル」。 管理者用のsystemd。0pointer.de。
要するに、
disable
起動中にユニットを無効にします。ただし、そのユニットは起動後いつでも開始できます。
mask
ユニットを完全に無効にします。マスクを解除せずに起動することはできません。これは、起動時に失敗することを自動的に意味します。
mask
ありunmask
ます- あなたのために働きますか?(テストしたくない場合は完全に理解しています!)
postgresql@9.5-main.service
サービス。