J'ai un court script Python qui doit s'exécuter au démarrage - Ubuntu 13.10. J'ai essayé tout ce à quoi je peux penser mais que je n'arrive pas à l'exécuter. Le script:
#!/usr/bin/python
import time
with open("/home/username/Desktop/startup.txt", 'a') as f:
f.write(str(time.time()) + " It worked!")
(Le script actuel est un peu différent, car je l'utilise uniquement à des fins de test, mais vous voyez l'idée.)
J'ai essayé tout ce qui suit, sans succès:
Mettez la commande python startuptest.py
dans crontab
, comme @reboot python /home/username/Documents/startuptest.py
, en tant qu’utilisateur régulier et en tant que Sudo
Mettez la commande python /home/username/Documents/startuptest.py
dans /etc/rc.local
Ouvrir les applications de démarrage d'Ubuntu et y placer la commande
Fait tout ce qui précède, en plaçant la commande dans un script Shell et en l'appelant à la place
Rien ne fonctionne. J'ai l'impression de rater quelque chose de simple. Des idées? (Le script fonctionne correctement si je lance simplement la commande depuis un terminal.)
Mettez ceci dans /etc/init
(Utilisation /etc/systemd
dans Ubuntu 15.x)
mystartupscript.conf
start on runlevel [2345]
stop on runlevel [!2345]
exec /path/to/script.py
En plaçant ce fichier de configuration ici, vous vous connectez au service pstart d'ubuntu qui exécute des services au démarrage.
le démarrage/arrêt manuel se fait avec Sudo service mystartupscript start
et Sudo service mystartupscript stop
Copiez le fichier python dans/bin:
Sudo cp -i /path/to/your_script.py /bin
Ajouter un nouveau travail cron:
Sudo crontab -e
Faites défiler vers le bas et ajoutez la ligne suivante (après tout le #'s
):
@reboot python /bin/your_script.py &
Le signe "&" en fin de ligne signifie que la commande est exécutée en arrière-plan et que le système ne s’arrête pas de démarrer.
Essaye-le:
Sudo reboot
Ajoutez ce fichier sur votre bureau: test_code.py (exécutez-le pour vérifier qu'il fonctionne pour vous)
from os.path import expanduser
import datetime
file = open(expanduser("~") + '/Desktop/HERE.txt', 'w')
file.write("It worked!\n" + str(datetime.datetime.now()))
file.close()
Exécutez les commandes suivantes:
Sudo cp -i ~/Desktop/test_code.py /bin
Sudo crontab -e
Ajoutez la ligne suivante et enregistrez-la:
@reboot python /bin/test_code.py &
Maintenant, redémarrez votre ordinateur et vous devriez trouver un nouveau fichier sur votre bureau: HERE.txt
Si vous êtes sur Ubuntu, vous n'avez pas besoin d'écrire d'autre code que votre code de fichier Python, ). Voici les étapes: -
Créez le fichier ~/.config/autostart/MyScript.desktop avec
[Desktop Entry]
Encoding=UTF-8
Name=MyScript
Comment=MyScript
Icon=gnome-info
Exec=python /home/your_path/script.py
Terminal=false
Type=Application
Categories=
X-GNOME-Autostart-enabled=true
X-GNOME-Autostart-Delay=0
Ça m'aide!
Dans des situations similaires, j’ai bien fait de mettre quelque chose comme ceci dans /etc/rc.local:
cd /path/to/my/script
./my_script.py &
cd -
echo `date +%Y-%b-%d_%H:%M:%S` > /tmp/ran_rc_local # check that rc.local ran
Cela a fonctionné sur plusieurs versions de Fedora et sur Ubuntu 14.04 LTS, pour les scripts python et Perl).