Luncurkan perbedaan antara beban dan mulai, bongkar dan berhenti

22

Saya membaca halaman manual launchctl dan memiliki beberapa pertanyaan tentang fungsinya:

  • Apa perbedaan antara memuat dan memulai, membongkar dan berhenti?
  • Di mana saya menemukan label pekerjaan untuk daemon, apakah ada di file plist?
Jason Rubenstein
sumber

Jawaban:

14

TL; DR

  • Anda biasanya ingin menggunakan launchctl load -wdan launchctl unload -w.
  • startdan stopbiasanya dicadangkan untuk menguji atau men-debug pekerjaan.

Detail

  • launchctl start <label>: Memulai pekerjaan. Ini biasanya disediakan hanya untuk menguji atau men-debug pekerjaan tertentu.
  • launchctl stop <label>: Menghentikan pekerjaan. Berlawanan dengan permulaan, dan mungkin saja pekerjaan akan segera dimulai kembali jika pekerjaan tersebut dikonfigurasi agar tetap berjalan.

  • launchctl remove <label>: Menghapus pekerjaan dari launchd, tetapi tidak sinkron. Itu tidak akan menunggu pekerjaan untuk benar-benar berhenti sebelum kembali, jadi tidak ada kesalahan dalam menangani yang satu ini.

  • launchctl load <path>: Memuat dan memulai pekerjaan selama pekerjaan itu tidak "dinonaktifkan."
  • launchctl unload <path>: Menghentikan dan menurunkan pekerjaan. Pekerjaan masih akan dimulai lagi pada login / reboot berikutnya.

  • launchctl load -w <path>: Memuat dan memulai pekerjaan sambil juga menandai pekerjaan sebagai "tidak dinonaktifkan." Pekerjaan akan dimulai kembali pada login / reboot berikutnya.
  • launchctl unload -w <path>: Menghentikan dan membongkar dan menonaktifkan pekerjaan. Pekerjaan TIDAK akan memulai kembali pada login / restart berikutnya.

Di mana saya menemukan label pekerjaan untuk daemon, apakah ada di file plist?

Ya, itu ada dalam file plist dan biasanya cocok dengan nama file file plist.

Ryan McGeary
sumber
Terima kasih, selamatkan saya beberapa jam 👏🏻
Dana Woodman
7

Memuat dan membongkar memberitahu launchd untuk memuat file konfigurasi. Apakah itu menjalankan program dan dalam kondisi apa ditentukan oleh file plist. Pekerjaan yang saat ini tidak berjalan dapat dimulai launchctl start ...dan dihentikanlaunchctl stop ... .

Label untuk pekerjaan ditentukan oleh kunci label, dan nama plist juga harus merupakan label pekerjaan diikuti oleh ekstensi plist.

Jay Thompson
sumber
6
Bagaimana cara menghilangkan faktor ke dalam ini? Secara khusus bagaimana perbedaannya dengan membongkar?
chrisortman
@chrisortman menghapus seperti membongkar kecuali bahwa itu tidak menunggu pekerjaan berhenti dulu. Itu hanya kembali segera tanpa memeriksa jika ada kesalahan.
Ryan McGeary