Il daemon di avvio non elabora gli argomenti del programma

2

Ho cercato di apportare una modifica (per il port forwarding / reindirizzamento) al file pfctl.conf e di averlo caricato (il file /etc/pfctl.conf ) caricato all'avvio. È stato confermato che pfctl.conf funziona come previsto poiché l'emissione di sudo pfctl -ef /etc/pfctl.conf determina il comportamento desiderato (le richieste a una porta vengono inoltrate all'altra).

Anche questo pfctl è effettivamente caricato all'avvio è confermato anche perché facendo launchctl list | grep pf mostra com.apple.pfctl nell'output. Tuttavia, il comportamento di inoltro desiderato non viene raggiunto direttamente dopo l'avvio. Succede solo facendo pfctl -f /etc/pfctl.conf dopo l'avvio. Stranamente, l'output di pfctl -ef /etc/pfctl.conf dice ancora pf already enabled .

Pertanto, ho concluso che mentre pf è caricato all'avvio, il demone sembra non caricare dal file conf. Il corpo del daemon di lancio com.apple.pfctl.plist ora appare come:

<plist version="1.0">
<dict>
     <key>Disabled</key>
     <false/>
     <key>Label</key>
     <string>com.apple.pfctl</string>
     <key>WorkingDirectory</key>
     <string>/var/run</string>
     <key>Program</key>
     <string>/sbin/pfctl</string>
     <key>ProgramArguments</key>
     <array>
         <string>/sbin/pfctl</string>
         <string>-e</string>
         <string>-f</string>
         <string>/etc/pf.conf</string>
     </array>
     <key>RunAtLoad</key>
     <true/>
</dict>
</plist>

Dopo aver controllato la discussione a Avviare launchd per leggere correttamente gli argomenti del programma è stato informativo ma non è praticamente utile in questo caso - ho già provato a modificare gli argomenti del programma del file plist per includere il percorso completo dell'eseguibile pfctl (come si può vedere nel codice sopra - prima riga dell'array degli argomenti) ma senza successo. Ho anche aggiunto un argomento (seconda riga di array di argomenti) per avviare effettivamente pfctl in base alla discussione in questo elenco . Anche il demone sembra configurato correttamente secondo le istruzioni di Documenti per sviluppatori Apple . In accordo con i documenti dello sviluppatore (che affermano che il tag del programma è richiesto quando gli argomenti del programma non sono forniti e viceversa), ho anche provato a rimuovere il tag del programma lasciando la matrice degli argomenti del programma in posizione (con il percorso dell'eseguibile come il primo argomento) - ma anche questo non ha avuto alcun effetto.

Sconcertantemente, la versione del file pfctl.plist fornita (che può essere presumibilmente corretta) aveva sia il tag del programma che il tag degli argomenti del programma, apparentemente in contraddizione con i docs di dev (o forse io frainteso i documenti).

Quindi ora sono completamente in perdita. Qualsiasi aiuto sarebbe più apprezzato!

Ulteriori informazioni: Non sono sicuro che questo sia rilevante, ma nel caso lo sia: il file di ancoraggio (creato da me) a cui fa riferimento pf.conf ha il seguente aspetto:

rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port =80 -> 127.0.0.1 port 8888  

Quindi esiste la possibilità che l'interfaccia di rete non sia ancora attiva e che gli indirizzi non siano stati assegnati al momento dell'esecuzione del daemon? Se è così, come può essere risolto?

    
posta Yogesch 03.07.2016 - 09:22
fonte

0 risposte

Leggi altre domande sui tag