systemctl、マスク解除方法


27
root@gcomputer:~# systemctl status x11-common
● x11-common.service
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)

私が試したsystemctl unmask x11-commonし、systemctl unmask x11-common.serviceそれは何も変更しませんでした。

どうすればマスクを解除できますか?

回答:


35

使用しているコマンドは両方とも正しいです。マニュアルも参照してください。

unmaskへのシンボリックリンク以外にシステムに既存のユニットファイルがない場合、コマンドは失敗するよう/dev/nullです。あなたの場合はmaskサービス、そしてそれは、新しいシンボリックリンクを作成/dev/null/etc/systemd/systemユニットファイルのためにsystemdルックスは、ブート時にロードする場所。この場合、実際のユニットファイルはありません。

他にも同様の問題があるようです

x11-common.service私のシステムでもマスクされていました。次のように修正できます。

最初に、ユニットファイルがへのシンボリックリンクであることを確認します /dev/null

file /lib/systemd/system/x11-common.service

返されるはずです:

/lib/systemd/system/x11-common.service: symbolic link to /dev/null

その場合は削除してください

sudo rm /lib/systemd/system/x11-common.service

ユニットファイルを変更したため、これを実行する必要があります。

sudo systemctl daemon-reload

ステータスを確認してください:

systemctl status x11-common

ロードされて実行されていると表示されない場合(円がまだ赤の場合)、パッケージを再インストールします

sudo apt-get install --reinstall x11-common

デーモンを再度リロードします

sudo systemctl daemon-reload

ステータスをもう一度確認します

systemctl status x11-common

現在は緑色で実行されています:)このサービスにはsystemdユニットファイルはありませんが、systemdは喜んでスクリプトを使用します/etc/init.d


わかりました、追加の質問:システムでマスクされている場合、このサービスは何のためですか?それは私たちの両方のためにマスクされている場合、それは本当に必要ではないようです。
アルバート

@Albert [こちらをご覧ください。](askubuntu.com/questions/712276/…)は、systemdユニットファイルがなくても機能するようです(/etc/init/...にファイルがあります)。新しい質問をしたいかもしれません。私がやったことは明らかな違いはなく、ロードされたマスクされたデッド(赤)ではなく、サービスがロードされ、有効化され、停止された(起動時にアクティブ)(緑)として表示されます。ログを読む必要があります
...-Zanna

systemdのための更新がでてくる場合は、ユニットファイルを再インストールしたので、これは実際に構造的な解決策ではありません
hbogert

@hbogertは、シンボリックリンク以外にユニットファイルが存在しない場合でも発生し/dev/nullますか?あなたは私の答えについては正しいです。私はsystemdにの...行動を混乱...のための回避策このソリューションを呼ぶだろう
Zanna

この場合に重要な正確なファイルの観点から最初の文を説明してもらえますか(説明するシナリオが本当に理解できないため)。
hbogert

2

次のように、サービスに空のオーバーライドファイルがある可能性があります。

●redis-server.service-高度なキーと値のストアロード済み:ロード済み(/lib/systemd/system/redis-server.service;マスク済み、ベンダープリセット:有効)ドロップイン:/ etc / systemd / system / redis-server .service.d└─limit.conf

limit.confが空のファイルかどうかを確認してください。ある場合は、削除してください。次に、サービスのマスクを解除する必要があります。


0

以下の手順に従ってください:

  1. systemctl edit systemd-hostnamed

    以下の2行を追加して、エディターを終了します(プロンプトが表示されたら保存することを忘れないでください)。

    [Service]
    PrivateNetwork=no
    
  2. これにより、ディレクトリに上記の2行のoverride.confファイルが作成されます。

    /etc/systemd/system/systemd-hostnamed.service.d/
    
  3. systemdの更新:

    systemctl daemon-reload
    
  4. 次に、サービスを再起動します。

    systemctl restart systemd-hostnamed
    

hostnamectlこれで、ハングすることなく実行できるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.