Layanan --status-all -> apa isi kolom [? ], [+], dan [-] artinya?

13

Jika saya menjalankan perintah "service --status-all", setiap layanan (running?) Terdaftar dalam format kolom. Kolom pertama memiliki [? ], [+], atau [-] sebelum nama layanan. Apa yang diwakilkan oleh kolom ini? Apa artinya?, +, Dan -?

Maaf jika ini pertanyaan sederhana. Saya mencari online ~ 30 menit sebelum hanya datang ke sini dan bertanya.

Saya bahkan menemukan ini: Apa arti simbol dalam layanan --status-all artinya? di mana jawaban "benar" menyatakan "Ini menarik [+] atau [-] tergantung pada apakah status keluar masing-masing nol atau tidak nol."

Jadi, saya kira pertanyaan baru saya adalah apa arti status nol dan bukan nol (!?!?!)?

00fruX
sumber

Jawaban:

12

Yah itu hanya kode keluar. Setelah sesuatu selesai berjalan, ia dapat mengembalikan integer 8-bit (0-255) untuk menunjukkan bagaimana itu keluar.

  • Nol (yang tersirat jika tidak ada yang dikembalikan) berarti aplikasi sampai pada akhir apa yang seharusnya dilakukan dan keluar secara alami.
  • Kode bukan nol (1-255) dapat berarti apa pun yang diinginkan aplikasi. Halaman manual ( man <command>) biasanya akan menunjukkan kepada Anda apa arti kode-kode ini.

Dalam hal pertanyaan, jangan terlalu memikirkannya:

  • + berarti sedang berjalan,
  • -berarti tidak ( mungkin macet - mungkin tidak pernah dimulai), dan
  • ?berarti layanan tidak memiliki statusperintah, jadi tidak mungkin perintah layanan dapat menentukan apa.
Oli
sumber
1
Saya sangat setuju dengan jawaban Anda (+1), tapi saya tidak bisa mengerti mengapa sudo service --status-all 2>&1 | grep sshoutput [ - ] sshbahkan ketika saya menjalankan perintah ini dari SSH? Atau mengapa sudo service --status-all 2>&1 | grep lightdmmenghasilkan [ ? ] lightdmketika sudo service lightdm statusbekerja seperti pesona?
Radu Rădeanu
@ RaduRădeanu Untuk menebak, saya pikir mungkin adalah /etc/init.dmasalah warisan . Pada komputer saya yang ditingkatkan serial, /etc/init.d/ssh status; echo $?menunjukkan tidak-nol (buruk, tidak berjalan) dan initctl listtidak menunjukkan SSH. Pada kotak 14,04 saya initctrl memang menunjukkan SSH tetapi servicemasih tidak dapat membaca statusnya. Juga ingat bahwa initctrlberfungsi untuk Pemula dan servicemerupakan bagian dari sysvinit-utils. Ini bukan gambar yang paling jelas tapi saya pikir itu mungkin bisa menjelaskan beberapa keanehan. Saya yakin pindah ke systemd akan membersihkan semuanya D:
Oli
Saya pikir kode keluar negatif dapat dikembalikan juga, atau hanya untuk skrip non-layanan?
saiarcot895