Demone systemd (comando: systemctl)
Nuovo demone systemd ( comando: systemctl ) in alternativa al demone init SysV (comando: service) e comparazione tra i comandi
Come controllare che un servizio sia in esecuzione in linux con installato il nuovo demone systemd ( comando: systemctl ) in alternativa al demone init SysV ( comando: service ) e comparazione tra i comandi service e systemctl.
Demone init SysV comando: service
E’ un situazione abbastanza frequente, utilizzando un sistema linux con funzioni anche di server, dover verificare che un servizio o demone (service o daemon) sia in esecuzione ad esempio: apache ,mysqld, postrgresql, samba, ssh, nfs, rsync, cron, syslogd, etc.
Il altre situazione alcune modifiche ai files di configurazione richiedono il riavvio del servizio di cui si sta modificando la configurazione ad esempio: httpd.conf per apache, pg_hda.conf e/o postgresql.conf per postgresql… E’ anche in questo caso potrebbe essere opportuno controllare lo stato del server.
In generale un servizio viene controllato con il comando:
$ service nome-del-servizio status
oppure
$ /etc/init.d/nome-del-servizio status
Le espressioni che compaiono in risposta tuttavia possono variare da distribuzione a distribuzione alcune più “verbose2 altre meno comunque in genere sono molto chiare.
alcuni esempi:
centos 5
$ service postgresql-9.1 status (pid 29401) is running... service mysqld status mysqld (pid 2879) is running...
ubuntu 12
$ service postgresql status 9.1/main (port 5432): online ~$ service apache2 status Apache2 is running (pid 17803)
Per verificare lo stato di tutti i servizi presenti nel sistema basta usare l’opzione –status-all
$ service --status-all
In pratica –status-all consente di vedere i servizi installati. Può far comodo anche visualizzare i servizi per runlevel.
Visualizzare i runlevel
Il modo più semplice per visualizzare i servizi attivi in un dato runlevel è digitare un comando del tipo:
sudo ls -l /etc/rc(num-run-level).d/
Controllare e impostare i servizi nei vari runlevel
Per controllare lo stato di un servizio e impostare i runlevel di avvio per un servizio si possono utilizzare anche altri comandi in particolare: chkconfig (Centos/RedHat/Fedora ) e sys-rc-conf (Debian/Ubuntu). Come detto si tratta di programmi che consentono di gestire “/etc/rc{runlevel}.d/” symlinks controllando l’avvio dei servizi stessi
chkconfig (Centos – RedHat )
Il controllo di servizi di redhat si installa con
yum install chkconfig
impostare l’avvio di postgresql-9.1 nei runlevel 3 e 5
chkconfig --level 35 postgresql on
disattivare l’avvio di postgresql nei runlevel 35
chkconfig --level 35 postgresql off
lista dei servizi con indicate le impostazioni dei runlevel
chkconfig --list
lista dei servizi con indicate le impostazioni dei runlevel 3
chkconfig --list | grep 3:on
sysv-rc-conf ( Debian – Ubuntu )
Per controllare i servizi in ubuntu debian utilizzare sysv-rc-conf l’equivalente di chkconfig. il controllore di servizi sysv-rc-conf si installa con:
sudo apt-get install sysv-rc-conf
sudo sysv-rc-conf
check o uncheck le opzioni per impostare l’avvio di un servizio in un dato runlevel.
Per avviare un servizio premere + per fermarlo –
modo CLI molto simile a chkconfig
sysv-rc-conf --list
avviare ssh nei runlevel 3 e 5
sysv-rc-conf --level 35 ssh on
disabilitare l’avvio di ssh nei runlevel 35
sysv-rc-conf --level 35 ssh off
Altri comandi che si possono installare per controllare i servizi
sysvconfig ntsysv
Lista dei file delle directory che contengono i vari script lanciati al boot
pstree
I processi sono mostrati con uno schema ad albero. In questo caso INIT è il processo di partenza mentre tutti gli altri processi discendono da questo.