Sto cercando un modo affidabile per verificare se postfix
è in esecuzione all'interno di uno script bash.
Il mio primo tentativo è stato semplicemente provare pidof postfix
, che non funziona.
Quindi ho cercato di ottenere il postfix status
:
POSTFIX_LOCATION=/var/packages/MailServer/target/sbin/postfix # location of postfix
result=`$POSTFIX_LOCATION status`
if [ -z $result ]; then
echo "Error: No status output from postfix"
elif [[ "$result" == *"is running"* ]]; then
echo "postfix is running!"
else echo "postfix is not running!"
fi
Ma anche se lo stato viene segnalato alla console, la result
variabile rimane vuota. Questo è l'output della console:
postfix/postfix-script: the Postfix mail system is running: PID: 11996
Error: No status output from postfix
Ho finalmente trovato un modo per verificare se Postfix è in esecuzione ottenendo il nome del processo di PID: 11996
, che è "master". Così il seguente fa il lavoro:
pidof master
Ma questo non è molto dettagliato e non sono sicuro se questo è un modo affidabile per testare se postfix
è in esecuzione.
Quindi le mie domande sono:
- Come posso ottenere l'output di
postfix status
all'interno di uno script bash? - Qualcosa che sto facendo di sbagliato lì? - C'è una migliore affidabile modo per verificare se
postfix
è in esecuzione dall'interno di uno script bash?
2>&1
ma il risultato rimane vuoto. Purtroppo pgrep
non è un'opzione perché non è disponibile sul sistema (una stazione disco Synology con DSM 5.1).
ps aux | grep [p]ostfix
?
ps
sembra funzionare. Sul sistema DSM ps
non accetta alcun parametro diverso da allora w
. Ma semplicemente chiamare ps | grep [p]ostfix
funziona.
status
uscite perstderr
? Prova ad aggiungere2>&1
astatus
-command. Inoltre puoi usarepgrep postfix