====== Creare script personalizzati con systemd ======
Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//25/11/2016 - 12:43//** \\ \\
In questo articolo verranno mostrati i passaggi necessari per creare script personalizzati con systemd .
Come prima cosa sara' necessario creare il nostro script bash . In questo caso usero' uno script per l'automount delle periferiche rimovibili.
**/etc/automount.sh**
#!/bin/bash
pathtoname() {
udevadm info -p "/sys/$1" | awk -v FS== '/DEVNAME/ {print $2}'
}
while read -r _ _ event devpath _; do
if [[ $event == add ]]; then
devname=$(pathtoname "$devpath")
udisksctl mount --block-device "$devname" --no-user-interaction
fi
done < <(stdbuf -o L udevadm monitor --udev -s block)
Adesso invece andremo a creare la regola per gestire lo script tramite systemd.
Creaimo il file **/etc/systemd/system/automount.service** con il seguente contenuto:
[Unit]
Description=Automount disk
[Service]
Type=simple
ExecStart=/etc/automount.sh
#ExecStop=
[Install]
WantedBy=multi-user.target
Sara' possibile abilitare il servizio con ''systemctl enable automount'' .
Notare che la direttiva //ExecStop=// indica lo script da lanciare per fermare il servizio.
===== Creare un Timer =====
Serve creare la unit come sopra e poi il file **.timer** come segue.
[Unit]
Description=Backup Cloud al boot e settimanale
Wants=network-online.target
After=network-online.target
[Timer]
#OnCalendar=weekly
OnUnitActiveSec=1w
Persistent=true
[Install]
WantedBy=timers.target
e di conseguenza creare il relativo **.service**
[Unit]
Description=Backup dati
Wants=network-online.target
After=network-online.target
[Service]
Type=oneshot
User=root
ExecStart=/usr/local/bin/backup-cloud.sh
ExecStop=killall backup-cloud.sh
[Install]
WantedBy=multi-user.target