Еще одна копия стримера 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
Поскольку для этого вы используете 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
а также stop
initctl
команды:
start splashtop
stop splashtop