Yanıtlar:
Çözümü buldum
sudo launchctl log level debug
ve bundan sonra
tail -f /var/log/system.log
Launchd plist dosyasına aşağıdaki satırları eklerseniz, işleminizi başlatmak yerine kendi işleminizi kaydetmeye çalıştığınızı varsayalım:
<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 dosyanızda dahili olarak bulunan herhangi bir kayıt veya baskı, çalıştırıldığında bu iki dosyadan birinde yakalanır. ancak dosyaları döndürmek size kalmış gibi görünüyor. Bekleyebileceğiniz gibi, her iki durumda da aynı dosyayı kullanırsanız, hem hata hem de stdout'u aynı yere kaydeder.
Bakınız: Hata ayıklama lansmanları ve Ajanlar Oluşturma bölümündeki Başlatma İşleri bölümü .
OS X 10.11'de (El Capitan), sudo launchctl debug <service-target> --stdout --stderr
@peter tarafından önerilen dosya sistemi seçeneğini almak istemiyorsanız, bir kereye mahsus günlüğü etkinleştirmek için kullanabilirsiniz .
Mevcut uygulamada birçok şey farklıdır launchctl
ve bu <service-target>
tür gariptir. Örneğin, yapılandırdığım ~/Library/LaunchAgents/dev.localmon.plist
"etiket" olan yerel bir hizmetim olduğunu varsayalım dev.localmon
. Onun <service-target>
olduğu gui/$UID/dev.localmon
yerde, $UID
sen CLI bu çalıştırıyorsanız beri, Kabuk sizin için interpole edecektir, kullanıcı kimliği vardır.
Bu yüzden dev.localmon
hizmetimin başlangıçta kilitlendiğini varsayalım (öyleydi), launchctl
işlemin stdout ve stderr'in bir dahaki sefere (ve sadece bir dahaki sefere) kabuğuma boru atması için aşağıdakini çağırabilirdim :
sudo launchctl debug gui/$UID/dev.localmon --stdout --stderr
Açık ve hazır TTY'lerle takıldığından, başka bir terminale gidin ve koşun:
launchctl start dev.localmon
# start is a legacy command and doesn't use the fancy new service-target notation
Sonra, birinci terminalde geri, sen gerektiğini çıktısına bakın. (Servis süreci öldüğü zaman Tuhaf bir şekilde kapanmaz, bu yüzden Ctrl-C'ye ihtiyacınız olacaktır.)
Btw, config dosyanızı bir PATH veya ortamın hizmeti daha önce ne kadar kırdığını saptadığınızda, launchctl unload ~/Library/LaunchAgents/dev.localmon.plist && launchctl load ~/Library/LaunchAgents/dev.localmon.plist
belgelerin öne sürdüğü uncache
alt komut aşağıdaki etkiyi gösterdiğinden , eski iki adımı kullanmanız gerekir :
Komut henüz uygulanmadı.
Apple'ın İşler sonrası yayın stratejisi için Yay: "Hızlı hareket et ve işleri kır"
sudo launchctl debug
Could not find domain for
benim için çıkar