python /opt/splashtop-streamer/SRStreamer.pyc
当我在提示符下使用启动这个名为 splashtop streamer 的应用程序时,一切运行正常。
但是,当我将sh -c sleep 10;
其添加到开头时,应用程序告诉我它已在运行并且不会打开该程序。为什么?
我尝试在 Ubuntu 启动 10 秒后启动该程序。当我简单使用时,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
命令运行正常。
答案1
我建议您尝试将其转储到脚本中而不是单个命令中。
我冒昧地为你制作脚本。请随意使用。如果没有,下面有一个模板可以帮助您创建自己的模板:
#!/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
最后,将其添加到您想要的任何启动时解决方案中,例如“启动项”、、init
或rc.d
其他。
答案2
您还sh -c sleep 10;
应该更改为sh -c 'sleep 10';
,然后您的命令将更改为:
sh -c 'sleep 10' && python /opt/Splashtop-streamer/SRStreamer.pyc
答案3
由于您为此使用了启动应用程序,因此登录后 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