systemctl, cara membuka kedok

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

Saya mencoba systemctl unmask x11-commondan systemctl unmask x11-common.servicetetapi itu tidak mengubah apa pun.

Bagaimana cara membuka kedoknya?

Albert
sumber

Jawaban:

35

Perintah yang Anda gunakan sama - sama benar . Lihat juga manual .

Tampaknya unmaskperintah gagal ketika tidak ada file unit yang ada di sistem selain symlink ke /dev/null. Jika Anda maskseorang layanan, maka itu menciptakan symlink baru /dev/nulldi /etc/systemd/systemmana systemd mencari file unit untuk memuat saat boot. Dalam hal ini, tidak ada file unit nyata.

Yang lain tampaknya memiliki masalah serupa

x11-common.servicejuga tertutup di sistem saya. Anda dapat memperbaikinya seperti ini:

Pertama periksa apakah file unit tersebut adalah symlink ke /dev/null

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

itu harus kembali:

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

dalam hal ini, hapus

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

Karena Anda mengubah file unit, Anda perlu menjalankan ini:

sudo systemctl daemon-reload

sekarang periksa statusnya:

systemctl status x11-common

jika tidak dikatakan dimuat dan berjalan (jika lingkaran masih merah), instal ulang paket:

sudo apt-get install --reinstall x11-common

dan memuat kembali daemon lagi

sudo systemctl daemon-reload

dan periksa status sekali lagi

systemctl status x11-common

Sekarang berwarna hijau dan sedang berjalan :) Layanan tidak memiliki file unit systemd, tetapi systemd dengan senang hati menggunakan script untuk itu /etc/init.dsebagai gantinya.

Zanna
sumber
Oke, pertanyaan lanjutan: Jika bahkan disamarkan pada sistem Anda, untuk apa layanan ini? Sepertinya itu tidak benar-benar diperlukan jika itu ditutupi untuk kita berdua.
Albert
@Albert [Lihat di sini.] ( Askubuntu.com/questions/712276/… ) tampaknya layanan ini bekerja tanpa file unit systemd (memiliki file di /etc/init/...). Anda mungkin ingin mengajukan pertanyaan baru. Apa yang saya lakukan tidak membuat perbedaan yang nyata, hanya layanan yang ditampilkan sebagai yang dimuat, diaktifkan, berhenti (aktif saat startup) (hijau) alih-alih mati yang di-masked (merah). Saya harus membaca log saya ...
Zanna
jika pembaruan untuk systemd datang, file unit diinstal ulang, jadi ini bukan solusi struktural
hbogert
@ Hbogert apakah itu terjadi bahkan jika tidak ada file unit selain dari symlink ke /dev/null? Anda benar tentang jawaban saya. Saya akan menyebut solusi ini sebagai solusi untuk ... perilaku yang membingungkan ... dari systemd
Zanna
Bisakah Anda menggambarkan kalimat pertama Anda dalam hal file yang tepat yang penting dalam kasus ini (karena saya tidak benar-benar memahami skenario yang Anda deskripsikan)?
hbogert
2

Bisa jadi layanan Anda memiliki file override kosong, seperti ini:

● redis-server.service - Toko nilai kunci lanjutan Dimuat: dimuat (/lib/systemd/system/redis-server.service; masked; preset vendor: diaktifkan) Drop-In: / etc / systemd / system / redis-server .service.d └─limit.conf

Periksa apakah limit.conf adalah file kosong. Jika ya, harap hapus. Maka layanan harus terbuka kedoknya.

Erik Hensema
sumber
0

Ikuti langkah-langkah di bawah ini:

  1. systemctl edit systemd-hostnamed

    Tambahkan 2 baris di bawah ini kemudian keluar dari editor (jangan lupa untuk menyimpan ketika diminta):

    [Service]
    PrivateNetwork=no
    
  2. Ini akan membuat file override.conf dengan 2 baris di atas dalam direktori:

    /etc/systemd/system/systemd-hostnamed.service.d/
    
  3. Sistem pembaruan d:

    systemctl daemon-reload
    
  4. Kemudian mulai kembali layanan:

    systemctl restart systemd-hostnamed
    

Anda sekarang seharusnya bisa berlari hostnamectltanpa menggantung.

Hossein
sumber