sysv-rc-conf controllare e impostare i servizi nei vari runlevel linux

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.

Per visualizzare i servizi possibile utilizzare il comando generale

# service --status-all

che indica anche i servizi attivi

# service --status-all
 [ - ] acpi-fakekey
 [ + ] acpi-support
 [ + ] acpid
 [ + ] atd
 [ + ] avahi-daemon
 [ - ] bootlogs
 [ - ] bootmisc.sh
 [ - ] checkfs.sh
 [ - ] checkroot-bootclean.sh
 [ - ] checkroot.sh
 [ + ] console-setup
 [ + ] cron
 ...

In pratica –status-all consente di vedere  i servizi installati.

Può far comodo anche visualizzare i servizi per 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/
ls -l /etc/rc3.d
total 84
-rw-r--r-- 1 root root 677 Apr  6  2015 README
lrwxrwxrwx 1 root root  22 May 31 16:19 S01acpi-fakekey -> ../init.d/acpi-fakekey
lrwxrwxrwx 1 root root  14 May 30 16:58 S01motd -> ../init.d/motd
lrwxrwxrwx 1 root root  17 May 30 17:00 S01rsyslog -> ../init.d/rsyslog
lrwxrwxrwx 1 root root  15 May 30 17:02 S02acpid -> ../init.d/acpid
lrwxrwxrwx 1 root root  22 May 31 16:19 S02acpi-support -> ../init.d/acpi-support
lrwxrwxrwx 1 root root  13 May 30 17:19 S02atd -> ../init.d/atd
lrwxrwxrwx 1 root root  14 May 30 17:00 S02cron -> ../init.d/cron
lrwxrwxrwx 1 root root  14 May 30 17:19 S02dbus -> ../init.d/dbus
lrwxrwxrwx 1 root root  15 May 30 17:19 S02exim4 -> ../init.d/exim4
lrwxrwxrwx 1 root root  13 May 30 17:20 S02ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root  22 May 30 17:19 S03avahi-daemon -> ../init.d/avahi-daemon
lrwxrwxrwx 1 root root  18 May 30 17:02 S03bootlogs -> ../init.d/bootlogs
lrwxrwxrwx 1 root root  14 May 30 17:19 S04cups -> ../init.d/cups
...


E possibile elencare gli script che controllano i vari servizi con

ls /etc/init.d

In generale un servizio viene controllato con il comando service:

digitando service nome-de-servizio è possibile visualizzare l’elenco completo delle opzioni possibili

# service nome-del-servizio
# service cron
[info] Usage: /etc/init.d/cron {start|stop|status|restart|reload|force-reload}.

Per visualizzare lo stato del servizio

# 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.

SysV Runlevel Config   ( sysv-rc-conf ) controllare e impostare i servizi nei vari runlevel

Per controllare lo stato di un servizio e impostare i runlevel esistono anche altri comodi comandi in particolare: chkconfig (Centos/RedHat/Fedora ) e il suo derivato 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

Il controllore di servizi sysv-rc-conf si installa al solito con:

# apt-get install sysv-rc-conf

# sysv-rc-conf

sysv-rc-conf debian servizi base

check o uncheck le opzioni per impostare l’avvio di un servizio in un dato runlevel.

Per avviare un servizio premere + per fermarlo

sysv-rc-conf run stop service

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

 

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

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.

Esempi

Esempi dei comandi da terminale per controllare e configurare i servizi linux con relativo output. Servizi attivi con service –status-all

# service --status-all
 [ - ] acpi-fakekey
 [ + ] acpi-support
 [ + ] acpid
 [ + ] atd
 [ + ] avahi-daemon
 [ - ] bootlogs
 [ - ] bootmisc.sh
 [ - ] checkfs.sh
 [ - ] checkroot-bootclean.sh
 [ - ] checkroot.sh
 [ + ] console-setup
 [ + ] cron
 [ + ] cups
 [ + ] cups-browsed
 [ + ] dbus
 [ + ] ebtables
 [ + ] exim4
 [ + ] hdparm
 [ - ] hostname.sh
 [ - ] hwclock.sh
 [ + ] kbd
 [ + ] keyboard-setup
 [ - ] killprocs
 [ + ] kmod
 [ + ] libvirt-guests
 [ + ] libvirtd
 [ - ] lvm2
 [ - ] motd
 [ - ] mountall-bootclean.sh
 [ - ] mountall.sh
 [ - ] mountdevsubfs.sh
 [ - ] mountkernfs.sh
 [ - ] mountnfs-bootclean.sh
 [ - ] mountnfs.sh
 [ + ] networking
 [ + ] nfs-common
 [ + ] procps
 [ ? ] qemu-system-x86
 [ + ] rc.local
 [ - ] rmnologin
 [ + ] rpcbind
 [ + ] rsyslog
 [ - ] saned
 [ - ] screen-cleanup
 [ - ] sendsigs
 [ + ] ssh
 [ + ] udev
 [ + ] udev-finish
 [ - ] umountfs
 [ - ] umountnfs.sh
 [ - ] umountroot
 [ + ] urandom
 [ - ] x11-common
 [ + ] xrdp

elenco scripts dei servizi  ls /etc/init.d

# ls /etc/init.d
acpid			cups-browsed	libvirt-guests	       rc	       ssh
acpi-fakekey		dbus		lvm2		       rc.local        udev
acpi-support		ebtables	motd		       rcS	       udev-finish
atd			exim4		mountall-bootclean.sh  README	       umountfs
avahi-daemon		halt		mountall.sh	       reboot	       umountnfs.sh
bootlogs		hdparm		mountdevsubfs.sh       rmnologin       umountroot
bootmisc.sh		hostname.sh	mountkernfs.sh	       rpcbind	       urandom
checkfs.sh		hwclock.sh	mountnfs-bootclean.sh  rsyslog	       x11-common
checkroot-bootclean.sh	kbd		mountnfs.sh	       saned	       xrdp
checkroot.sh		keyboard-setup	networking	       screen-cleanup
console-setup		killprocs	nfs-common	       sendsigs
cron			kmod		procps		       single
cups			libvirtd	qemu-system-x86        skeleton
root@debians8vm:/home/maurizio# ls /etc/init.d
acpid			cups-browsed	libvirt-guests	       rc	       ssh
acpi-fakekey		dbus		lvm2		       rc.local        udev
acpi-support		ebtables	motd		       rcS	       udev-finish
atd			exim4		mountall-bootclean.sh  README	       umountfs
avahi-daemon		halt		mountall.sh	       reboot	       umountnfs.sh
bootlogs		hdparm		mountdevsubfs.sh       rmnologin       umountroot
bootmisc.sh		hostname.sh	mountkernfs.sh	       rpcbind	       urandom
checkfs.sh		hwclock.sh	mountnfs-bootclean.sh  rsyslog	       x11-common
checkroot-bootclean.sh	kbd		mountnfs.sh	       saned	       xrdp
checkroot.sh		keyboard-setup	networking	       screen-cleanup
console-setup		killprocs	nfs-common	       sendsigs
cron			kmod		procps		       single
cups			libvirtd	qemu-system-x86        skeleton

Visualizzare i runlevel

sudo ls -l /etc/rc(num-run-level).d/
elecno dei servizi del runlevel 2

# ls -l /etc/rc2.d
total 84
-rw-r--r-- 1 root root 677 Apr  6  2015 README
lrwxrwxrwx 1 root root  22 May 31 16:19 S01acpi-fakekey -> ../init.d/acpi-fakekey
lrwxrwxrwx 1 root root  14 May 30 16:58 S01motd -> ../init.d/motd
lrwxrwxrwx 1 root root  17 May 30 17:00 S01rsyslog -> ../init.d/rsyslog
lrwxrwxrwx 1 root root  14 May 30 23:50 S01xrdp -> ../init.d/xrdp
lrwxrwxrwx 1 root root  15 May 30 17:02 S02acpid -> ../init.d/acpid
lrwxrwxrwx 1 root root  22 May 31 16:19 S02acpi-support -> ../init.d/acpi-support
lrwxrwxrwx 1 root root  13 May 30 17:19 S02atd -> ../init.d/atd
lrwxrwxrwx 1 root root  14 May 30 17:00 S02cron -> ../init.d/cron
lrwxrwxrwx 1 root root  14 May 30 17:19 S02dbus -> ../init.d/dbus
lrwxrwxrwx 1 root root  15 May 30 17:19 S02exim4 -> ../init.d/exim4
lrwxrwxrwx 1 root root  13 May 30 17:20 S02ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root  22 May 30 17:19 S03avahi-daemon -> ../init.d/avahi-daemon
lrwxrwxrwx 1 root root  18 May 30 17:02 S03bootlogs -> ../init.d/bootlogs
lrwxrwxrwx 1 root root  14 May 30 17:19 S04cups -> ../init.d/cups
lrwxrwxrwx 1 root root  22 May 30 17:20 S04cups-browsed -> ../init.d/cups-browsed
lrwxrwxrwx 1 root root  18 May 30 22:54 S04libvirtd -> ../init.d/libvirtd
lrwxrwxrwx 1 root root  15 Sep 10 19:05 S04saned -> ../init.d/saned
lrwxrwxrwx 1 root root  24 May 30 22:54 S05libvirt-guests -> ../init.d/libvirt-guests
lrwxrwxrwx 1 root root  18 May 30 22:54 S06rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root  19 May 30 22:54 S06rmnologin -> ../init.d/rmnologin

Elaborazione lista servizi

# ls -1 /etc/rc$(runlevel| cut -d" " -f2).d/S*
/etc/rc5.d/S01acpi-fakekey
/etc/rc5.d/S01motd
/etc/rc5.d/S01rsyslog
/etc/rc5.d/S02acpid
/etc/rc5.d/S02acpi-support
/etc/rc5.d/S02atd
/etc/rc5.d/S02cron
/etc/rc5.d/S02dbus
/etc/rc5.d/S02ssh
/etc/rc5.d/S03avahi-daemon
/etc/rc5.d/S03bootlogs
/etc/rc5.d/S04libvirtd
/etc/rc5.d/S05libvirt-guests
/etc/rc5.d/S06rc.local
/etc/rc5.d/S06rmnologin
/etc/rc5.d/S90umountroot

Pulizia completa

# ls -1 /etc/rc$(runlevel| cut -d" " -f2).d/S* | \
> awk -F'[0-9][0-9]' '{print "Startup :-> " $2}'
Startup :-> acpi-fakekey
Startup :-> motd
Startup :-> rsyslog
Startup :-> acpid
Startup :-> acpi-support
Startup :-> atd
Startup :-> cron
Startup :-> dbus
Startup :-> ssh
Startup :-> avahi-daemon
Startup :-> bootlogs
Startup :-> libvirtd
Startup :-> libvirt-guests
Startup :-> rc.local
Startup :-> rmnologin
Startup :-> umountroot

Controllare  un servizio:

# 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.

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 nome-del-servizio status

Lista dei file delle directory che contengono i vari script lanciati al boot

# pstree
# pstree
systemd─┬─acpid
        ├─agetty
        ├─atd
        ├─avahi-daemon───avahi-daemon
        ├─cron
        ├─cups-browsed
        ├─cupsd
        ├─dbus-daemon
        ├─dnsmasq───dnsmasq
        ├─exim4
        ├─libvirtd───10*[{libvirtd}]
        ├─rpc.idmapd
        ├─rpc.statd
        ├─rpcbind
        ├─rsyslogd─┬─{in:imklog}
        │          ├─{in:imuxsock}
        │          └─{rs:main Q:Reg}
        ├─sshd───sshd───sshd───bash───su───bash───pstree
        ├─systemd───(sd-pam)
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─xrdp
        └─xrdp-sesman

sysv-rc-conf  check o uncheck per impostare l’avvio di un servizio in un dato runlevel.

sysv-rc-conf debian servizi base

check per abilitare altri servizi

sysv-rc-conf debian

sysv-rc-conf warning:

sysv-rc-conf debian run stop warning

 

Risorse:

 

Annunci

Come controllare che un servizio (service) sia in esecuzione in linux

New_icons_17 (2017) 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 

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.

New_icons_17 (2017) 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

Risorse:

chkconfig e sysv-rc-conf

chkconfig (Centos/RedHat/Fedora ) e sys-rc-conf (Debian/Ubuntu) sono programmi che consentono di gestire “/etc/rc{runlevel}.d/” symlinks controllando l’avvio dei servizi

chkconfig (Centos – RedHat )    –  SUSE

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

chkconfig –  SUSE

chckconfig può essere utilizzato anche in SUSE

Per l’eventuale installazione

su

zypper install chkconfig

sysv-rc-conf ( Debian – Ubuntu )

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.

 

Come controllare i processi che sono in esecuzione in linux

Per controllare i processi in esecuzione e possibile far ricorso sia a programmi con iterfacccia grafica che a programmi da liane di comando. Per quanto riguarda i programmi ad interfaccia grafica fare riferimento al seguente post  Task manager per ubuntu debian linux: comunque  un applicativo efficace e snello è LxTask.      Se si è interessati al controllo dei servizi fare riferimento a Come controllare che un servizio (service) sia in esecuzione in linux. Diversi sono invece i comandi per visualizzare e/o controllare i processi in esecuzione a livello di terminale che verranno riportati in questo post.

# ps -A
ID TTY          TIME CMD
    1 ?        00:00:00 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:03 ksoftirqd/0
    6 ?        00:00:00 migration/0
    7 ?        00:00:00 watchdog/0
 ... 
 1565 ?        00:00:00 cron
 1583 ?        00:00:00 lightdm
 1589 ?        00:00:01 irqbalance
 1613 ?        00:00:00 NetworkManager
 1625 ?        00:00:00 libvirtd
 1656 ?        00:00:00 postgres
   ...

per visualizzare ulteriori infromazioni è possibile far ricorso alle opzioni -ef

# ps -ef

per vedere i processi attivi  in base al nome o  altri attributi utilizzare il comando

# pgrep "nome-processo"

qualora si desideri una visualizzazioni con struttura ad albero  dei processi in esecuzione utilizzare il comando

# pstree

la visualizzazione di tutti i file aperti è permessa dal comando

# lsof

Per controllare oltre a visualizzare i processi attivi utilizzare i seguenti applicativi per teminale consentono di vedere i processi in modo dinamico e anche eventualmente di interagire:

Htop

Htop, basato su ncurses, può essere controllato efficacemente  con il mouseLe opzioni a disposizone  per la visualizzazione dei processi sono veramente articolate buone anche le opzioni di configurazione.

htop  un visualizzatore di processi interattivo

htop un visualizzatore di processi interattivo

Il programma di riferimento nella visualizzazione dinamica dei processi attivi

#top

top - visualizza processi

#atop
nmon – monitor di sistema

Il mio preferito per quanto riguarda il monitoraggio del sistema compresa la visualizzazione dei processi attivi é nmon

Nmon  ( Nigel’s Monitor )

Nmon ( Nigel’s Monitor )

Risorse: