Voglio eseguire uno script non appena l'autenticazione lightdm ha esito positivo e l'unità Unity inizia a caricarsi. e voglio eseguire i miei script come utente root.
dove si trovano gli script di avvio in Unity?
Voglio eseguire uno script non appena l'autenticazione lightdm ha esito positivo e l'unità Unity inizia a caricarsi. e voglio eseguire i miei script come utente root.
dove si trovano gli script di avvio in Unity?
Risposte:
Prima inserisci il tuo script /usr/bin
e dai il permesso di esecuzione.
Ora crea il file .desktop in /home/[user-name]/.config/autostart/
cui esegui il tuo script che viene eseguito all'avvio.
Esempio: - Lascia che il tuo nome file di script sia "esempio" o "esempio.sh"
Crea il file .desktop con gedit con le seguenti righe e salva come nomefile.desktop in /home/[user-name]/.config/autostart/
[Desktop Entry]
Type=Application
Exec=sudo example
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=myscript
Comment=Startup Script
Qui Exec=sudo example
o Exec=sudo example.sh
esegue lo script come root da /usr/bin
Concedi l'esecuzione del file .desktop.
Ora, Script viene eseguito all'avvio.
Un'altra possibilità:
Crea un file in $HOME/.config/upstart/my-upstart-script.conf
start on desktop-start
stop on desktop-end
script
sudo fdisk -l > /home/[user-name]/upstart-test.txt
end script
Ulteriori dettagli su Upstart :
http://ifdeflinux.blogspot.de/2013/04/upstart-user-sessions-in-ubuntu-raring.html
http://upstart.ubuntu.com/cookbook/
Informazioni da eseguire sudo
senza password:
/home/yourusername/.config/upstart/
. Apri il tuo home director in nautilus, premi Ctrl + H e dovresti vedere la directory .config
Per eseguire un comando come root , dopo il login, c'è un altro semplice trucco:
Bastano due passaggi:
/etc/crontab
), per eseguire un piccolo script (eseguendo il comando) se e solo se esiste il file trigger. Poiché il file trigger viene rimosso dallo stesso script, il comando viene eseguito una sola volta.La sequenza quindi è:
USER LOGIN > trigger file is created > cronjob runs script (with your command) and removes trigger file, > next time the script passes, since the trigger file does not exist anymore
Il set up
I due piccoli script:
Uno per creare il file trigger all'accesso:
#!/bin/sh
touch $HOME/.trigger
e uno due esegue il comando:
#!/bin/bash
FILE="/path/to/your/homedirectory/.trigger"
# don't use $HOME here, since you run it by root
if [ -f $FILE ]; then
<your command here, run by root>
rm -f $FILE
fi
create_trigger.sh
e run_command.sh
.Aggiungi il seguente comando alle applicazioni di avvio (Dash> Applicazioni di avvio> Aggiungi)
/path/to/create_trigger.sh
Aggiungi la seguente riga al /etc/crontab
file ( sudo nano /etc/crontab
):
* * * * * root /path/to/run_command.sh
Ora il comando definito viene eseguito una sola volta entro un minuto dall'accesso.