Spesso dopo un riavvio, ci accorgiamo che postfix non è in esecuzione, rendendo impossibile l’invio delle email via SMTP. Spesso (se siamo certi che la configurazione si OK) postfix potrebbe non essere presente tra i servizi che vengono avviati al boot. I sistemi basati su Red-Hat, come CentOS o Amazon Linux si affidano all’utility chkconfig per gestire i servizi all’avvio.
Verifichiamo i servizi presenti
Per vedere quali servizi sono attualmente configurati (quelli da /etc/init.d/ o xinetd ) diamo il comando chkconfig –list :
[root@trinity ~]# chkconfig --list acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off cgconfig 0:off 1:off 2:off 3:off 4:off 5:off 6:off cgred 0:off 1:off 2:off 3:off 4:off 5:off 6:off courier-authdaemon 0:off 1:off 2:on 3:on 4:on 5:on 6:off courier-imapd 0:off 1:off 2:on 3:on 4:on 5:on 6:off courier-imaps 0:off 1:off 2:on 3:on 4:on 5:on 6:off courier-pop3d 0:off 1:off 2:on 3:on 4:on 5:on 6:off courier-pop3s 0:off 1:off 2:on 3:on 4:on 5:on 6:off crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off drwebd 0:off 1:off 2:on 3:on 4:on 5:on 6:off htcacheclean 0:off 1:off 2:off 3:off 4:off 5:off 6:off httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off kdump 0:off 1:off 2:off 3:on 4:on 5:on 6:off mailman 0:off 1:off 2:off 3:off 4:off 5:off 6:off mdmonitor 0:off 1:off 2:on 3:on 4:on 5:on 6:off messagebus 0:off 1:off 2:on 3:on 4:on 5:on 6:off mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off named 0:off 1:off 2:on 3:on 4:on 5:on 6:off netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off ntpdate 0:off 1:off 2:off 3:off 4:off 5:off 6:off pc-remote 0:off 1:off 2:on 3:on 4:on 5:on 6:off portreserve 0:off 1:off 2:on 3:on 4:on 5:on 6:off psa 0:off 1:off 2:on 3:on 4:on 5:on 6:off psa-health-monitor-notificationd 0:off 1:off 2:on 3:on 4:on 5:on 6:off rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off restorecond 0:off 1:off 2:off 3:off 4:off 5:off 6:off rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off spamassassin 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off sw-collectd 0:off 1:off 2:on 3:on 4:on 5:on 6:off sw-cp-server 0:off 1:off 2:on 3:on 4:on 5:on 6:off sw-engine 0:off 1:off 2:on 3:on 4:on 5:on 6:off udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off xinetd 0:off 1:off 2:on 3:on 4:on 5:on 6:off servizi basati su xinetd: chargen-dgram: off chargen-stream: off daytime-dgram: off daytime-stream: off discard-dgram: off discard-stream: off echo-dgram: off echo-stream: off ftp_psa: on poppassd_psa: on rsync: off tcpmux-server: off time-dgram: off time-stream: off
Ogni linea consiste nel nome del servizio seguita dal suo status (on oppure off) per ognuno dei sette livelli. Nel nostro esempio, SpamAssassin è attivo sul runlevel 2,3,4 e 5. I servizi xinetd invece hanno semplicemente uno stato on oppure off.
Verificare un singolo servizio
Per conoscere rapidamente lo status di un singolo servizio (nel nostro esempio postfix), diamo il comando:
[root@trinity ~]# chkconfig --list | grep postfix
Se otteniamo un status vuoto, il nostro servizio non è configurato per l’avvio!
Aggiungiamo un servizio
Aggiungiamo un servizio alla configurazione attuale come segue:
[root@trinity ~]# chkconfig postfix on
Ri-verifichiamo che il servizio sia adesso presente usando la sintassi
chkconfig --list nomeservizio
Nel nostro caso:
[root@trinity ~]# chkconfig --list postfix postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Perfetto, il nostro servizio verrà lanciato al boot.
Nota per gli utenti Plesk 12 e Onyx su Linux
A quanto apprendiamo, questo è un bug noto nelle versioni precedenti alla 17.5. Un ripristino delle impostazioni o un repair può togliere postfix dagli elementi dell’avvio. Questa guida vale anche per voi utenti Plesk.