launchctl'nin adsız bir işlem başlatmasını engelle


2

Dnsmasq programını kurdum ve şimdi launchctl ile başlatabilmek istiyorum. Sorun şu ki, uygulamayı başlattığımda, belirtilen etiketi kullanmak yerine, anonim bir işlem başlatıyor olmam.

10247   -   0x100107c30.anonymous.dnsmasq
-       0   com.example.dnsmasq

Ama olmasını istiyorum

10247    0  com.example.dnsmasq

Anonim süreçteki sorun, bunu cctctctl ile durduramam. Kaçtığımda

launchctl stop com.example.dnsmasq

isimsiz süreç hala hayatta kalıyor.

İşte özellik dosyam:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.example.dnsmasq</string>    
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/sbin/dnsmasq</string>
        <string>-p</string>
        <string>2155</string>
        <string>-R</string>
        <string>-A</string>
        <string>/.dev/127.0.0.1</string>
        <string>-x</string>
        <string>/usr/local/var/run/dnsmasq.pid</string>
    </array>
  <key>RunAtLoad</key>
  <false/>
  <key>KeepAlive</key>
  <false/>
</dict>
</plist>

Bunun nasıl düzeltileceği hakkında bir fikrin var mı?


Bu çok soru Stack Overflow'ta soruldu: bağlantı . Lütfen çapraz göndermekten kaçının .

üzgünüm, hemen SO'da silmek üzereydi. bu sitenin bu tür sorular için daha iyi bir yer olacağını düşündüm.
Mato

Yanıtlar:


6

Bu aslında değil launchctl yeni bir süreç yaratmak; bu büyük olasılıkla dnsmasq kendisi. Eğer o fork() arka plana s launchd söyleyemem; o zaman konuştuğunda launchd, launchd bunun için anonim bir giriş oluşturur. Emin olmak dnsmasq kendini arka plan yapmaz.

( - düzenli olarak listelenmiştir launchctl list çıktı, orijinalin dnsmasq süreç çıkıldı.)


Özellikle, ProgramArguments dizisine "-k" (veya "--keep-in-frontground") eklenmesi bunu yapmalıdır. Bunu yaptıktan sonra, KeepAlive'i true olarak da değiştirmek isteyebilirsiniz (bu nedenle, herhangi bir nedenden çıkarsa başlatmayı yeniden başlatır).
Gordon Davisson
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.