Como executar um script python em um terminal no login?

2

Eu tenho o meu Debian virtual machine definido para login automaticamente, e quero fazer com que, quando o login automático ocorrer, um terminal abra e execute o comando

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

A saída do script python ocorre dentro do terminal, e é por isso que eu gostaria de abri-lo em primeiro lugar. Eu já fiz muita pesquisa e tentei muitas coisas, incluindo colocar este comando no arquivo /etc/rc.local , mas isso não parece fazer nada.

Além disso, eu tentei isso

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

Mas isso não iniciou o terminal após o login, como eu pensei que seria.

Alguém tem alguma ideia de como realizar isso? Eu sou muito novo no Linux, e tentando descobrir quais pacotes e ferramentas eu preciso tem sido uma experiência muito confusa!

    
por Aidan 25.01.2018 / 23:11

2 respostas

1

Então, consegui descobrir como fazer isso e queria compartilhar minhas descobertas aqui. Aqui estão os passos que eu dei:

  1. Para que o comando seja executado na inicialização, editei o arquivo .bashrc em /home/etc/ e coloquei meu comando no final, depois de todo o código pré-escrito ( sudo python /home/usr/pymodbus/examples/common/synchronous_client.py ). Certifique-se de ter sudo em seu comando.
  2. Para que o terminal seja iniciado na inicialização, criei um arquivo da área de trabalho em ~/.config/autostart (se você não tiver a pasta de início automático, basta criar uma).

  3. Na pasta autostart, criei um arquivo .desktop chamado gnome-terminal.desktop e o preencha da seguinte forma:

    [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. Finalmente, para ignorar a necessidade de digitar a senha sudo quando eu queria executar o script, executei o comando sudo visudo e coloquei a seguinte linha no final do arquivo:

    <username> ALL=(ALL) NOPASSWD:ALL
    

Espero que isso ajude alguém que esteja tentando fazer algo parecido comigo!

    
por 01.02.2018 / 15:33
0

Procure usar o cron como um mecanismo de inicialização. Na parte inferior da lista de entrada do cron, adicione @reboot python /home/pymodbus/examples/common/synchronous_client.py & (não se esqueça do &) Você pode definir um script para ser executado na inicialização do computador - Não se esqueça de chmod + x o script em questão - Isso permite que o sistema execute o script.

o cron é acessado digitando sudo crontab -e

    
por 26.01.2018 / 00:47