sbin / start-stop-daemon无法启动python - ubuntu docker容器

时间:2016-12-14 16:58:12

标签: python ubuntu docker daemon start-stop-daemon

我有一个简单的python脚本,我想在docker容器中的后台启动一个守护进程服务

/sbin/start-stop-daemon --start  --user root --make-pidfile --pidfile /var/lock/subsys/my-application.pid --exec 'python /opt/app/uc/monitor/bin/my-application.py'

当我在shell中执行此命令时,我得到了

/sbin/start-stop-daemon: unable to stat //python /opt/app/uc/monitor/bin/my-application.py (No such file or directory)

然而,当在shell中执行下面的命令时,它可以工作

python /opt/app/uc/monitor/bin/my-application.py 

我确定安装了python并且已经设置了所有链接。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

该错误消息意味着start-stop-daemon正在寻找要打开的文件(stat操作在打开文件之前是一个检查)并将'python ... '参数视为好像是一份文件。

this example确认了这一点。您可能需要阅读Ubuntu版本的man page for start-stop-daemon,以检查设置的有效命令。

最简单的解决方案可能是创建一个shell脚本(比如/opt/app/uc/monitor/bin/run-my-application.sh),然后将其放入其中:

#!/bin/bash
python /opt/app/uc/monitor/bin/my-application.py

请务必对此文件执行chmod +x。如果找不到python,请使用which python查找python的路径并在脚本中使用它。

现在尝试:

/sbin/start-stop-daemon --start  --user root --make-pidfile --pidfile /var/lock/subsys/my-application.pid --exec '/opt/app/uc/monitor/bin/run-my-application.sh'