Outra cópia do streamer do splashtop está em execução

0

Quando eu inicio este aplicativo chamado streamer splashtop usando python /opt/splashtop-streamer/SRStreamer.pyc no prompt tudo funciona bem.

No entanto, quando adiciono sh -c sleep 10; ao início, o aplicativo informa que ele já está em execução e não abre o programa. Por quê?

Estou tentando iniciar o programa 10 segundos no boot do Ubuntu. Quando eu uso simplesmente sleep 10; python /opt/splashtop-streamer/SRStreamer.pyc , o aplicativo não inicia. Quando eu uso sh -c sleep 10; python /opt/splashtop-streamer/SRStreamer.pyc , o aplicativo aparece com a mensagem de erro de que outra cópia já está em execução, clico em OK e ele sai.

No entanto, pode ser importante observar que, quando não estou inicializando, o comando sleep 10; python /opt/splashtop-streamer/SRStreamer.pyc funciona bem.

    
por Daniel 16.09.2014 / 18:23

3 respostas

1

Eu recomendo que você tente colocar isso em um script em vez de um único comando.

Tomei a liberdade de criar um script para você . Sinta-se livre para usá-lo. Caso contrário, um modelo está abaixo para ajudar você a criar seu próprio:

#!/bin/sh

sleep n; #Causes computer to wait n seconds before moving on to the next line
python /path/to/python/script.py;

Isso funcionará porque ele executa tudo em um único processo sh . Basicamente, é exatamente o mesmo que digitar os dois comandos, um após o outro, em um prompt SH.

Depois de ter o script e salvá-lo em um lugar seguro. (Eu gosto de /home/$USER/.bin/run-this.sh , execute este comando no seu terminal (qualquer terminal):

chmod 755 /home/$USER/.bin/run-this.sh

Por fim, adicione-o a qualquer solução de inicialização desejada, como "Itens de inicialização", init , rc.d ou o que for.

    
por Kaz Wolfe 22.10.2014 / 19:15
0

Além disso, seu sh -c sleep 10; deve ser alterado para sh -c 'sleep 10'; e, em seguida, seu comando será alterado para:

sh -c 'sleep 10' && python /opt/Splashtop-streamer/SRStreamer.pyc

Se você quer rodar seu script com 10 segundos de atraso .

    
por sddgob 22.10.2014 / 19:34
0

Como você está usando o Startup Applications para isso, iniciar o programa 10 segundos após o login é o que acontece, então você pode usar um Tarefa de sessão inicial em vez disso.

Crie um arquivo .conf em ~/.config/upstart (crie o diretório, se necessário), contendo:

description "Splashtop Streamer Service"
start on desktop-start
stop on desktop-end

respwan

pre-start script
    sleep 10
end script

exec python /path/to/python/script.py

(Chame splashtop.conf , por exemplo).

A maior vantagem é que o Upstart reaparecerá o programa se ele falhar, e você poderá controlá-lo usando os comandos start e stop initctl :

start splashtop
stop splashtop
    
por muru 22.10.2014 / 19:35