PDA

View Full Version : [Ubuntu 12.04] Script in shutdown/reboot


Phantom II
18-01-2013, 18:16
Ciao a tutti,

Vorrei creare uno script che faccia girare questo comando
echo -n > ~/.local/share/recently-used.xb
ad ogni spegnimento o riavvio del pc.

Cercando con google ho creato il seguente script
#!/bin/sh
echo -n > ~/.local/share/recently-used.xb
e l'ho reso avviabile con
chmod +x nome_file.sh
Successivamente ho dato questi comandi per fare in modo che lo script venga eseguito allo spegnimento del pc
sudo cp nome_file.sh /etc/init.d
sudo ln -s /etc/init.d/nome_file.sh /etc/rc0.d/K10rensa.sh
sudo ln -s /etc/init.d/nome_file.sh /etc/rc6.d/K10rensa.sh

Ho acceso e spento il pc un paio di volte constatando che lo script non funziona/non va in esecuzione.
Mi aiutate a capire dove sbaglio?

Gimli[2BV!2B]
18-01-2013, 21:46
Gli script eseguiti dal sistema sono lanciati con utente root, ~/.local/share/recently-used.xb equivale quindi a /root/.local/share/recently-used.xb

Gli script init hanno una struttura che si dovrebbe rispettare, puoi trovare lo scheletro di esempio nel file /etc/init.d/skeleton

Esempio scritto velocemente in Debian (attenzione che la shell di default nei sistemi Debian e derivati è dash (http://linux.die.net/man/1/dash)):#!/bin/sh
### BEGIN INIT INFO
# Provides: rensa
# Required-Start: $local_fs
# Required-Stop:
# Should-Start:
# Default-Start: 1 2 3 4 5
# Default-Stop:
# Short-Description: Clean recently used
# Description: Erase content of Gnome recently used files
### END INIT INFO

PATH=/bin:/usr/bin

. /lib/lsb/init-functions

case "$1" in
start|"")
(cat /etc/passwd | cut -d: -f6) | while read HOME
do
RECENT="$HOME/.local/share/recently-used.xb"
if [ -f "$RECENT" ]
then
log_begin_msg "Erasing recently used: $RECENT"
echo -n > "$RECENT"
log_end_msg $?
fi
done
;;
restart|reload|force-reload|status)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
*)
echo "Usage: rensa [start]" >&2
exit 3
;;
esac

exit 0

Phantom II
18-01-2013, 22:08
La mia igoranza in materia fa luce, di conseguenza non ho capito praticamente nulla di quanto hai scritto.
In quanto ho fatto io gli errori dove starebbero?

Gimli[2BV!2B]
18-01-2013, 22:12
L'errore fondamentale è che il tuo script cerca di svuotare il file /root/.local/share/recently-used.xb

Phantom II
18-01-2013, 23:14
Quindi se io cambiassi il comando in
echo -n > ~/home/nome_utente/.local/share/recently-used.xbel
dovrebbe funzionare?

Gimli[2BV!2B]
18-01-2013, 23:59
echo -n > /home/nome_utente/.local/share/recently-used.xbelMolto più probabile che funzioni.

Phantom II
20-01-2013, 00:15
Ha funzionato, ti ringrazio molto per l'aiuto :)