Soru OS X'de başlatılan günlüğe kaydetmeyi nasıl etkinleştiririm?


OS X 10.6'da launchd logging özelliğini nasıl etkinleştiririm?

Düzgün başlamayan yeni bir arka plan ekledim (durum 1).

Sorunu hata ayıklamak istiyorum ama bulamadım launchd günlükleri, içinde değiller /var/log/launchd.log.


28
2017-09-22 13:38


Menşei




Cevaplar:


Çözümü buldum

 sudo launchctl log level debug 

ve bundan sonra

 tail -f /var/log/system.log

24
2017-09-22 13:47



Bu işletim sisteminin başka bir şey gibi yöneticiye ihtiyacı olduğunu fark ettim. "WTF, burada en parlak bayrak nerede!" Diye bağırıyordu. OSX sallar, emin, ama bir tanıtıcı almak için zor. Thx +1 - chiggsy
Takip, FYI: Bu, OS X 10.7.2 ile de çalışır. Teşekkürler. - Alan W. Smith
Leopard sunucumla ilgili sorunlar yaşadım ve lansmanımın plisteki yanlış bir şey olduğunu düşündüm (aynı plist Snow Leopard'da çalışmasına rağmen). Bu konuda tökezlemek oldu ve çekicilik gibi çalışır :) - icasimpan
Bu artık 10.10'dan beri çalışmıyor Yosemite. launchctl sürümü: Darwin System Bootstrapper 2.0.0: Sal Eyl 9 16:30:56 PDT 2014 - JeanMertz
@JeanMertz - herhangi bir alternatif? - Umang


Sürecin kendisini başlatmak yerine işleminizi günlüğe kaydetmeye çalıştığınızı varsayarsak, launchd plist dosyasına aşağıdaki satırları eklerseniz:

<key>StandardOutPath</key>
<string>/path/to/logfile.log</string>
<key>StandardErrorPath</key>
<string>/path/to/another_logfile.log</string>

ve işlemi yeniden yüklediğinizde, komut dosyasına dahil ettiğiniz tüm kayıt veya yazdırma işlemleri, her çalıştırıldığında bu iki dosyadan birinde yakalanır. dosyaları döndürmek size kalmış gibi görünüyor. beklediğiniz gibi, aynı dosyayı her iki durumda da kullanırsanız, hem hata hem de stdout'u aynı yere kaydeder.

Görmek: Başlatma Daemon'ları ve Aracıları Oluşturmada Başlatmada İşler bölümü bölümü.


15
2018-06-11 21:16





OS X 10.11'de (El Capitan) kullanabilirsiniz sudo launchctl debug <service-target> --stdout --stderr @peter tarafından önerilen dosya sistemi seçeneğini kullanmak istemiyorsanız, bir kerelik kayıt etkinleştirmek için.

Birçok şey mevcut uygulamasında farklı launchctl, ve <service-target> biraz garip. Örneğin, yapılandırdığım yerel bir hizmetim olduğunu varsayalım. ~/Library/LaunchAgents/dev.localmon.plist"etiketi" olan dev.localmon. Onun <service-target> olduğu gui/$UID/dev.localmon, nerede $UID kullanıcı kimliğinizdir, bunu CLI'de çalıştırdığınız için, kabuğunuz sizin için enterpole olacaktır.

Varsayalım benim dev.localmon hizmet başlangıçta çöküyordu (oldu), sahip olmak için aşağıdakileri arayabilirdim launchctl sürecin stdout'unu ve stderr'i bir dahaki sefere (ve sadece bir sonraki sefere) kabuğuma aktarırız:

sudo launchctl debug gui/$UID/dev.localmon --stdout --stderr

Bu, açık ve hazır TTY'lerle kilitlendiğinden, başka bir terminale gidin ve çalıştırın:

launchctl start dev.localmon
# start is a legacy command and doesn't use the fancy new service-target notation

Sonra, ilk terminale dönersiniz. meli Çıkışı gör. (Garip bir şekilde, hizmet süreci sona erdiğinde kapanmıyor, bu yüzden Ctrl-C'ye sahip olmanız gerekecek.)

Btw, config dosyanızı düzeltip bir kez daha PATH ya da ortamın hizmeti bozduğuna karar verdikten sonra, eskiyi kullanmanız gerekiyor. launchctl unload ~/Library/LaunchAgents/dev.localmon.plist && launchctl load ~/Library/LaunchAgents/dev.localmon.plist belgelerden beri iki adımlı uncache alt komut aşağıdaki etkiye sahiptir:

Komut henüz uygulanmadı.

Apple'ın Görev Sonrası yayınlama stratejisi için yayın: "Hızlı hareket et ve işleri kır"


12
2017-09-14 23:06