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