Plistleri yüklemek ve boşaltmak için “eski olmayan” launchctl komutlarını nasıl kullanabilirim?


14

İçinde plist dosyalarım var ~/Library/LaunchAgents.

Ben mutlu kullanarak olmuştur launchctl load -wve launchctl unload -wyıllardır açılıp bunlar çevirmek. Ancak, şimdi fark ediyorum loadve unloadkılavuz sayfanın "eski" bölümüne düştü. Onlardan birini arayalım com.example.service.plist.

Ancak, bu plistlerle etkileşime girmeye çalıştığımda launchctl enable "gui/$(id -u)/com.example.service"ve launchctl disable "gui/$(id -u)/com.example.service"diğer launchd komutları başarıyı bildiriyor gibi görünüyor - örneğin, launchctl print "gui/$(id -u)"tamamen belirlediğim duruma karşılık gelen engelli bayrakları gösteriyor - hizmetler aslında başlamıyor ve durmuyor veya bağlantı noktalarında dinleyin ve listeyi açın.

Kaçırdığım bir adım var mı? Şu an bağlı kalıyorum loadve unloadApple sonunda eski / kötü yoldan kapıyı çarpmadan önce bu şeylerle etkileşime girmenin uygunsuz bir yolunu öğrenmek istiyorum ...


Miras, bir değişikliğin ayakta olduğu anlamına gelir - yine de 10.11 ve altındaki kalbin içeriğine yük ve boşaltma kullanabilirsiniz. Benim varsayımım, Apple'ın bu yıl
WWDC'de

1
Ama henüz bunun için bir cevap olmayabilir sanırım, ama emin görünüyor gibi enableve disableyerini amaçlanmıştır loadve unload. Beklediğim gibi çalışmalarını sağlayamıyorum.
Glif

1
Aşağıdaki denediniz launchctl enableile launchctl kickstart?

Yapmadım, ama launchctl kickstartsadece söz konusu iş için bir aktivasyon yayınlamam gerekiyor mu? Launchd'u özellikle kullanıyorum çünkü tamamen isteğe bağlı aktivasyon istiyorum.
Glif

2
Bu yardımcı olabilir gibi görünüyor: babodee.wordpress.com/2016/04/09/launchctl-2-0-syntax
TJ Luoma

Yanıtlar:


6

Diye sordum Twitter kullanıcı @launchderp :

@ launchderp launchctl loadEn azından 10.12'ye kadar veya sonraki her ne olursa olsun, kullanımın kaldırılması hala güvenli mi?

cf Plisteri yüklemek ve boşaltmak için "eski olmayan" launchctl komutlarını nasıl kullanabilirim?

Ve @launchderp yanıtladı

@tjluoma Evet, hala güvende. Onları kırmak için çok uzun yıllar bağımlılıklar.

Bu resmi bir Apple ifadesi gibi görünmese de, bu kişinin launchdApple için aktif olarak çalışan ve söylediklerine güvenen biri olduğuna inanıyorum . YMMV.

Hikayenin ahlakı: Yükleme / boşaltma sizin için çalışıyorsa, kullanmaya devam edin :-)


2
Oldukça hakkında sorusunu sormaz çünkü "kabul" olarak işaretleme değil enableve disableben hala bilgi takdir çünkü upvoted :).
Glif

1

TJ Luoma tarafından atıfta bulunulan makale çok yardımcı oldu. Daemon'u Başlatmak İçin Adımlar:

  1. Plist dosyanızı /Library/LaunchDaemons/her zamanki gibi kaydedin . Diyelim ki dosya com.example.mysrv.plistve plist içindeki Label com.example.mysrv.
  2. sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.mysrv.plist. Yolun göreli (ila $PWD) veya mutlak olabileceğini unutmayın .
  3. Servisi ile kontrol edin sudo launchctl print system/com.example.mysrv. "Koşu" demeli.

Launch Agent'lar benzer olmalıdır. Dikkat: Bir hizmeti boşaltmadan nasıl durduracağımı bilmiyorum bootout.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.