在启动CentOS上运行python脚本

时间:2018-03-20 17:35:09

标签: python bash centos

尝试在启动CentOS时运行python脚本。我的/etc/init.d/example-script看起来像这样:

case $1 in 
    start)
        $(python /etc/bin/example-script.py &)
    ;;
    stop)
        echo "filler text"
    ;;

当我尝试service example-script start时,它会运行脚本,但不会在后台执行。 example-script.py有一个while(True)循环,所以也许这就是原因?

但是当我在终端中输入python /etc/bin/example-script.py &时,它确实在后台执行。只有当这个命令在bash脚本中时它才会失败。

1 个答案:

答案 0 :(得分:1)

那是因为您通过将命令置于命令替换语法($())中来生成子shell,即命令替换在子shell中运行命令;并且你在子shell中处理命令,而不是原始脚本的shell。

此外,你没有对STDOUT做任何事情,所以邀请另一个子shell似乎毫无意义。删除命令替换:

python /etc/bin/example-script.py &