web-dev-qa-db-ja.com

systemctl、マスク解除方法

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

systemctl unmask x11-commonsystemctl unmask x11-common.serviceを試しましたが、何も変わりませんでした。

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

21
Albert

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

システムに/dev/nullへのシンボリックリンク以外に既存のユニットファイルがない場合、unmaskコマンドは失敗するようです。サービス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のスクリプトを使用します。

30
Zanna

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

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

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

2
Erik Hensema

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

  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をハングさせずに実行できるはずです。

0
Hossein