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