Saya mencari cara yang dapat diandalkan untuk menguji apakah postfix
berjalan dari dalam skrip bash.
Upaya pertama saya hanyalah mencoba pidof postfix
, yang tidak berhasil.
Kemudian saya mencoba untuk mendapatkan 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
Tetapi meskipun statusnya dilaporkan ke konsol, result
variabel tetap kosong. Ini adalah output konsol:
postfix/postfix-script: the Postfix mail system is running: PID: 11996
Error: No status output from postfix
Saya akhirnya menemukan cara untuk menguji apakah postfix berjalan dengan mendapatkan nama proses PID: 11996
, yaitu "master". Jadi yang berikut ini berfungsi:
pidof master
Tapi ini tidak terlalu verbose dan saya tidak yakin apakah ini cara yang dapat diandalkan untuk menguji apakah postfix
sedang berjalan.
Jadi pertanyaan saya adalah:
- Bagaimana saya bisa mendapatkan output
postfix status
dari dalam skrip bash? - Ada yang salah dengan saya? - Apakah ada cara yang lebih andal untuk menguji apakah
postfix
dijalankan dari dalam skrip bash?
2>&1
tetapi hasilnya tetap kosong. Sayangnya pgrep
tidak ada pilihan karena tidak tersedia pada sistem (stasiun disk Synology dengan DSM 5.1).
ps aux | grep [p]ostfix
?
ps
tampaknya berfungsi. Pada sistem DSM ps
tidak menerima parameter apa pun selain itu w
. Tetapi hanya dengan menelepon ps | grep [p]ostfix
itu berhasil.
status
keluaran untukstderr
? Coba tambahkan2>&1
ke-status
perintah. Anda juga dapat menggunakanpgrep postfix