Apa yang dimaksud dengan "<service_name> mati tetapi subsys dikunci"?

38

Saya mencoba menjalankan memcached pada kotak centos dan itu berjalan untuk sementara waktu, tetapi kemudian berakhir di keadaan ini:

mati memcached tetapi subsys terkunci

netstat menunjukkan ini:

tcp        0      0 :::11211                    :::*                        LISTEN      
udp        0      0 0.0.0.0:11211               0.0.0.0:*                               

ps menunjukkan ini:

nobody   21983  0.0  1.8  60272 19912 ?        Ssl  16:46   0:00 memcached -d -p 11211 -u nobody -c 1024 -m 64

Adakah yang tahu apa artinya itu?

Nick Brosnahan
sumber

Jawaban:

61

Ini berarti layanan berjalan pada satu waktu, tetapi macet.

Ketika Anda memulai suatu layanan, itu membuat file "kunci" untuk menunjukkan bahwa layanan sedang berjalan. Ini membantu menghindari beberapa contoh layanan. Saat Anda menghentikan layanan, file kunci ini dihapus.

Ketika layanan berjalan crash, file kunci ada tetapi proses tidak ada lagi. Demikian pesannya.

Lihatlah dua area /var/run/*.piddan /var/lock/subsys/*. Ini diharapkan saling menyetujui. Yaitu, jika file lock (emtpy file) /var/lock/subsys/crondada, maka baris pertama file /var/run/crond.piddiharapkan berisi PID dari proses yang berjalan untuk layanan ini. Jika tidak ada proses yang berjalan, maka ada sesuatu yang salah. Jika proses memang berjalan (seperti yang Anda lihat) tetapi tidak bahwa PID, kemudian sesuatu mungkin bingung.

Eddie
sumber
Bukankah masih berjalan jika terikat ke port dan terdaftar di ps?
Nick Brosnahan
Saya memperpanjang jawaban saya. Lakukan "ls / var / lock / subsys / memcached" (Saya menganggap file ini ada) dan kemudian "cat /var/run/memcached.pid" dan lihat baris pertama. Baris pertama adalah PID yang seharusnya Anda lihat untuk memcached.
Eddie
Maaf, saya tahu apa yang sedang terjadi. Itu masih berjalan. Saya meluncurkannya menggunakan "sudo / sbin / service memcached start", tetapi melihat ke belakang dalam sejarah saya, saya mendapat status menggunakan "/ sbin / service memcached service". PEBCAK. Semuanya baik-baik saja. Terima kasih atas bantuan Anda.
Nick Brosnahan
5
Ah, dan menjalankan status bukan sebagai root, Anda mungkin tidak memiliki akses baca ke /var/run/memcached.pid, dengan demikian, perintah mengasumsikan subsistem sudah mati karena tidak dapat menemukan proses yang benar.
Eddie