2 votes

Comment exécuter un script Python dans un terminal lors de la connexion ?

J'ai ma machine virtuelle Debian configurée pour se connecter automatiquement, et je veux faire en sorte que, lorsque la connexion automatique se produit, un terminal s'ouvre et exécute la commande

python /home/pymodbus/examples/common/synchronous_client.py

La sortie du script Python se produit dans le terminal, c'est pourquoi je voudrais l'ouvrir en premier lieu. J'ai déjà fait beaucoup de recherches et j'ai essayé beaucoup de choses, y compris mettre cette commande dans le fichier /etc/rc.local, mais cela n'a pas semblé faire quoi que ce soit.

De plus, j'ai essayé ceci

gnome-terminal -e "python /home/pymodbus/examples/common/synchronous_client.py"

Mais cela n'a pas démarré le terminal à la connexion comme je le pensais.

Est-ce que quelqu'un a un aperçu de la façon de réaliser cela? Je suis très novice en Linux, et essayer de comprendre quels paquets et outils j'ai besoin a été une expérience très déroutante!

1voto

Aidan Points 31

J'ai donc réussi à trouver comment faire cela et je voulais partager mes découvertes ici. Voici les étapes que j'ai suivies :

  1. Pour exécuter la commande au démarrage, j'ai modifié le fichier .bashrc dans /home/etc/ et j'ai placé ma commande tout à la fin, après tout le code préécrit (sudo python /home/usr/pymodbus/examples/common/synchronous_client.py). Assurez-vous d'avoir sudo dans votre commande.

  2. Pour ouvrir le terminal au démarrage, j'ai créé un fichier de bureau dans ~/.config/autostart (si vous n'avez pas le dossier autostart, vous pouvez simplement en créer un).

  3. Dans le dossier autostart, j'ai créé un fichier .desktop appelé gnome-terminal.desktop et je l'ai rempli comme suit :

    [Desktop Entry]
    Type=Application
    Exec=gnome-terminal
    Hidden=false
    NoDisplay=false
    X-GNOME-Autostart-enabled=true
    Name[en_NG]=Terminal
    Name=Terminal
    Comment[en_NG]=Start Terminal On Startup
    Comment=Start Terminal On Startup
  4. Enfin, pour contourner la nécessité de taper le mot de passe sudo lorsque je voulais exécuter le script, j'ai exécuté la commande sudo visudo et j'ai ajouté la ligne suivante tout à la fin du fichier :

     ALL=(ALL) NOPASSWD:ALL

J'espère que cela aidera toute personne qui tenterait de faire quelque chose de similaire à moi !

0voto

Julian Mann Points 973

Regardez l'utilisation de cron comme mécanisme de démarrage. À la fin de la liste d'entrées cron, ajoutez @reboot python /home/pymodbus/examples/common/synchronous_client.py & (n'oubliez pas le &) Vous pouvez définir un script à exécuter au démarrage de l'ordinateur - N'oubliez pas de chmod +x le script en question - Cela permet au système d'exécuter le script.

Le cron est accessible en tapant sudo crontab -e

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X