Il vecchio rc.local su Systemd

By | novembre 22, 2016

Utilizzo Linux da molti anni, ora sono passato ad ArchLinux con systemd e mi manca il fatto di non avere il file /etc/rc.local. C’è un modo per utilizzarlo su Systemd?

La soluzione sarebbe creare uno script systemd che lanci all’avvio di sistema il file rc.local. Il file rc.local dovrebbe avere le direttive di “start” e “stop” e inserire nel costrutto i relativi comandi da lanciare. Vediamo come.

Creiamo il file /etc/rc.local con il comando:

# touch /etc/rc.local

inseriamo all’interno del file le righe:

#!/bin/bash
case $1 in 
 start)
 # start script
 ;;
 stop)
 # stop script
 ;;
esac
exit

nella parte di “start” inseriamo i comandi da lanciare all’avvio, mentre nella parte di “stop” inseriamo i comandi da lanciare prima dello spegnimento del PC.

ad esempio per montare e smontare una partizione:

#!/bin/bash
case $1 in 
 start)
 # start script
 mount /dev/sdb1 /opt/data
 ;;
 stop)
 # stop script
 umount /dev/sdb1
 ;;
esac
exit

una volta creato lo script attribuiamo i permessi di esecuzione con il comando:

# chmod +x /etc/rc.local

creiamo a questo punto il file di avvio per systemd con il comando:

# touch /etc/systemd/system/rc-local.service

e inseriamo all’interno:

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
ExecStop=/etc/rc.local stop
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

salviamo il file e abilitiamo lo script all’avvio del sistema con il comando:

# systemctl enable rc-local.service

ora tutti i comandi inseriti nello script rc.local (direttiva start) verranno eseguiti all’avvio del sistema.

Save

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *