Saya punya beberapa file plist di ~/Library/LaunchAgents
.
Saya telah dengan senang hati menggunakan launchctl load -w
dan launchctl unload -w
menghidupkan dan mematikan ini selama bertahun-tahun. Namun, saya perhatikan bahwa sekarang load
dan unload
diturunkan ke bagian "warisan" dari halaman manual. Sebut saja salah satunya com.example.service.plist
.
Namun, ketika saya mencoba untuk berinteraksi dengan daftar ini melalui launchctl enable "gui/$(id -u)/com.example.service"
dan launchctl disable "gui/$(id -u)/com.example.service"
, perintah launchd lainnya tampaknya melaporkan keberhasilan - misalnya, launchctl print "gui/$(id -u)"
benar-benar menunjukkan kepada saya bendera yang dinonaktifkan yang sesuai dengan keadaan yang telah saya tetapkan - layanan tidak benar-benar mulai dan berhenti atau dengarkan dan jangan terdaftar di porta mereka.
Apakah ada beberapa langkah yang saya lewatkan? Untuk saat ini saya bertahan load
dan unload
tetapi saya ingin mempelajari cara berinteraksi yang tidak terputus-putus dengan hal-hal ini sebelum Apple akhirnya membanting pintu dengan cara lama / buruk ...
sumber
enable
dandisable
dimaksudkan untuk menggantikanload
danunload
. Saya tidak bisa membuat mereka bekerja seperti yang saya harapkan.launchctl enable
denganlaunchctl kickstart
?launchctl kickstart
seharusnya hanya mengeluarkan aktivasi untuk pekerjaan yang dimaksud? Saya menggunakan launchd khusus karena saya ingin aktivasi murni berdasarkan permintaan.Jawaban:
Saya bertanya kepada pengguna Twitter @launchderp :
Dan @launchderp menjawab
Meskipun ini mungkin tidak tampak seperti pernyataan resmi Apple, saya percaya orang ini adalah seseorang yang secara aktif bekerja
launchd
untuk Apple, dan percaya pada apa yang mereka katakan. YMMV.Moral cerita: Jika memuat / membongkar bekerja untuk Anda, tetap gunakan :-)
sumber
enable
dandisable
tetapi terangkat karena saya masih menghargai informasi :).Artikel yang dirujuk oleh TJ Luoma sangat membantu. Langkah-langkah untuk Meluncurkan Daemon:
/Library/LaunchDaemons/
seperti biasa. Katakanlah file itucom.example.mysrv.plist
, dan Label dalam daftar adalahcom.example.mysrv
.sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.mysrv.plist
. Perhatikan bahwa jalur bisa relatif (ke$PWD
) atau absolut.sudo launchctl print system/com.example.mysrv
. Itu harus mengatakan "berjalan".Peluncuran Agen harus serupa. Peringatan: Saya tidak tahu bagaimana cara menghentikan layanan tanpa menurunkannya
bootout
.sumber