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?

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.


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.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.