Еще одна копия стримера Splashtop работает

Когда я запускаю это приложение под названием Splashtop Streamer с помощью python /opt/splashtop-streamer/SRStreamer.pyc по подсказке все работает нормально.

Тем не менее, когда я добавляю sh -c sleep 10; в начале приложение говорит мне, что оно уже запущено и не будет открывать программу. Зачем?

Я пытаюсь запустить программу через 10 секунд после загрузки Ubuntu. Когда я использую просто sleep 10; python /opt/splashtop-streamer/SRStreamer.pyc приложение не запускается. Когда я использую sh -c sleep 10; python /opt/splashtop-streamer/SRStreamer.pyc В приложении появляется сообщение об ошибке, что другая копия уже запущена, я нажимаю "ОК", и она закрывается.

Однако может быть важно отметить, что когда я не загружаюсь sleep 10; python /opt/splashtop-streamer/SRStreamer.pyc Команда отлично работает.

3 ответа

Решение

Я рекомендую вам попробовать сбросить это в скрипт вместо одной команды.

Я позволил себе сделать сценарий для вас. Не стесняйтесь использовать его. Если нет, ниже приведен шаблон, который поможет вам создать свой собственный:

#!/bin/sh

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

Это будет работать, потому что он запускает все в одном sh процесс. По сути, это то же самое, что вводить обе эти команды, одну за другой, в подсказку SH.

После того, как у вас есть сценарий и вы сохранили его в безопасном месте. (Мне нравится /home/$USER/.bin/run-this.sh, запустите эту команду в своем терминале (любом терминале):

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

Наконец, добавьте его в любое решение при загрузке, например "Startup Items", init, rc.dили что угодно.

Также ваш sh -c sleep 10; должно быть изменено на sh -c 'sleep 10'; и тогда ваша команда изменится на это:

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

Если вы хотите запустить ваш скрипт с задержкой 10 секунд.

Поскольку для этого вы используете Startup Applications, запуск программы происходит через 10 секунд после входа в систему, поэтому вы можете вместо этого использовать задание сеанса Upstart.

Создать .conf файл в ~/.config/upstart (при необходимости создайте каталог), содержащий:

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

(Назови это splashtop.conf, например.)

Наибольшим преимуществом является то, что Upstart будет перезапускать программу в случае ее сбоя, и вы можете управлять ею, используя start а также stopinitctl команды:

start splashtop
stop splashtop
Другие вопросы по тегам