Execução de comandos no login
Normalmente, é um desses casos em que um comando é interrompido se for executado muito em breve no processo de login. A área de trabalho ainda não está totalmente carregada e o comando não pode ser executado.
Adicione uma pausa aos seus aplicativos de inicialização antes que o script seja iniciado e ele será executado corretamente:
/bin/bash -c "sleep 15 && python2 /path/to/script.py"
Testei seu script com e sem o intervalo e, na verdade, falhei se o executei sem, mas consegui com o intervalo.
Algumas observações
- Esteja ciente de que se você não usar o shebang (
#!/usr/bin/env python
) você deve preceder o caminho para o script porpython
para executá-lo. Não importa se é executável ou não. -
Em sistemas mais lentos (ou em uma VM), o intervalo de 15 segundos pode não ser suficiente. Se assim for, tente começar com um intervalo relativamente longo, experimentando "abaixo" até o limite.
-
Sobre o roteiro; realmente não investiguei, mas eu definitivamente não usaria
os.system
mais, usesubprocess.Popen()
e, ah, você pode salvar uma linha removendo o primeiroos.system(to_send)
e indentificando o segundo, já que você executará o comando nos dois casos após a rotaif
/else
. :)