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.