launchctl start ile böyle bir işlem hatası yok. Mac OSX 10.9


3

Amaç, makinenin ağ adını bu makinenin ipadresiyle belirlemektir. Bir plist dosya yarattım ve / Library / Launchagents / içine koydum. Hata ayıklama nedeniyle "launctl start" komutunu kullandım. İşte benim plist dosyam:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.myfile.hostname</string>

  <key>ProgramArguments</key>
  <array>
    <string>/usr/sbin/ipconfig</string>
    <string>getifaddr</string>
    <string>en0</string>
    <string>|</string>
    <string>/usr/bin/tr</string>
    <string>-d</string>
    <string>'.'</string>
    <string>|</string>
    <string>sudo</string>
    <string>/usr/sbin/scutil</string>
    <string>--set</string>
    <string>LocalHostName</string>
  </array>

  <key>RunAtLoad</key>
  <true/>

  <key>StandardErrorPath</key>
  <string>/tmp/AlTest1.err</string>

  <key>StandardOutPath</key>
  <string>/tmp/AlTest1.out</string>
</dict>
</plist>

O zaman kullanıyorum:

launchctl start /Library/LaunchAgents/com.myfile.hostname.plist 

ve hatayı olsun:

launchctl start error: No such process

Hata bu dosyada tam olarak neyin yanlış olduğunu açıklamadığı için nedenini bulmakta zorlanıyorum. Komutun kendisindeki komut iyi çalışır. Bu, bu soru için yanlış bölüm ise lütfen tavsiye.

Şimdiden teşekkürler

Yanıtlar:


2

Launchctl komutunu kullanmayı deneyin:

launchctl load /Library/LaunchAgents/com.myfile.hostname.plist

Bu, adlandırılmış bir işe başlamak yerine iş biletini yükler.

Borsaların başlatıldığı bir iş ilanı listesinde borulara izin verildiğinden emin değilim. Bunları kullanmak, tartışmanın yorumlanması için bir kabuğa geçirilmesini gerektirir ve bu olmayabilir. Komutu doğrudan iletmeyi düşünün /bin/sh tek bir argüman olarak.


0

Bu sizin sorununuzu çözmeyecektir (aynı sorunu yaşıyorum), ancak eğer:

sudo launchctl load /Library/LaunchAgents/com.myfile.hostname.plist

İşe yarayabilir. Benim için yaptı. Belki ne olduğuna dair bir ipucu. Belki de değil. Bu sorunu giderirseniz bana bildirin. Hepimiz bu işte beraberiz.


1
Bu ayrılmak yerine Graham'ın cevabını düzenlemek olarak daha iyi olur mu? Ayrı tutmak istiyorsanız, lütfen komutun önünde neden sudo gerektiğine dikkat edin, böylece tartışmayı teşvik etmeye ve belki de soru sormaya yardımcı olabilir.
bmike

0

Borular bir kabuk özelliğidir ve piyasaya sürüldü değil cehennem gibi. Komutu bunun yerine bir kabuk betiğine koyun ve işinizi bu betiği çağırın. Ayrıca kurtulun sudo senaryoda. Kök ayrıcalıklarına ihtiyacınız varsa, iş tanımını /Library/LaunchDaemons yerine.


0

Önde gelen dizinleri kaldırmak benim için çalıştı:

sudo launchctl start homebrew.mxcl.bind

-1

Uzantıyı kaldırın, sonra çalışması gerekir.

launchctl start /Library/LaunchAgents/com.myfile.hostname
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.