splashtop streamer 的另一个副本正在运行

splashtop streamer 的另一个副本正在运行

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

最后,将其添加到您想要的任何启动时解决方案中,例如“启动项”、、initrc.d其他。

答案2

您还sh -c sleep 10;应该更改为sh -c 'sleep 10';,然后您的命令将更改为:

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

如果你想延迟 10 秒运行脚本

答案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 崩溃了,它会重新启动程序,您可以使用startstop initctl命令来控制它:

start splashtop
stop splashtop

相关内容