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.