impedisce a launchctl di avviare un processo anonimo

2

Ho installato dnsmasq e ora voglio essere in grado di avviarlo con launchctl. Il problema è che ogni volta che avvio l'app launchctl avvia un processo anonimo invece di usare l'etichetta specificata.

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

Ma voglio che sia

10247    0  com.example.dnsmasq

Il problema con il processo anonimo è che non riesco a fermarlo con launchctl. Quando corro

launchctl stop com.example.dnsmasq

il processo anonimo rimane ancora attivo.

Ecco il mio file di proprietà:

<?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>

Qualche idea su come risolvere questo problema?

    
posta Mato 08.05.2011 - 01:00
fonte

1 risposta

6

Questo non è in realtà launchctl che crea un nuovo processo; è molto probabilmente dnsmasq stesso. Se fork() s in background, launchd non può dirlo; quindi quando parla con launchd , launchd crea una voce anonima per esso. Assicurati che dnsmasq non abbia lo stesso sfondo.

(il - elencato per l'output regolare launchctl list indica che il processo originale% co_de è terminato).

    
risposta data 08.05.2011 - 01:08
fonte

Leggi altre domande sui tag