【发布时间】:2016-06-05 02:59:57
【问题描述】:
我想在 ubuntu 14.04LTS 启动时运行 python 脚本。
我的rc.local文件如下:
sudo /home/hduser/morey/zookeeper-3.3.6/bin/zkServer.sh 启动
echo "test" > /home/hduser/test3
sudo /home/hduser/morey/kafka/bin/kafka-server-start.sh /home/hduser/morey/kafka/config/server.properties &
echo "test" > /home/hduser/test1
/usr/bin/python /home/hduser/morey/kafka/automate.py &
echo "test" > /home/hduser/test2
退出 0
除了我的 python 脚本之外的所有东西都可以正常工作,即使是运行 python 脚本后的 echo 语句,但 python 脚本似乎没有运行。 我的python脚本如下
import sys
from subprocess import Popen, PIPE, STDOUT
cmd = ["sudo", "./sbt", "project java-examples", "run"]
proc = Popen(cmd, shell=False, stdout=PIPE, stdin=PIPE, stderr=STDOUT)
proc.communicate(input='1\n')
proc.stdin.close()
如果单独执行,效果非常好。
我做了很多研究,但找不到解决方案
编辑:echo 语句仅用于测试目的,第二个实际命令(不考虑 echo 语句)正在启动一个继续运行的服务器,甚至 python 脚本也会启动一个在无限循环上运行的侦听器,如果这是任何帮助
【问题讨论】:
-
Python 脚本会更自然地实现为 rc.local 中的
/path/sbt "project java-examples" > /dev/null 2>&1。 Python 只是在那里分散注意力。
标签: python linux shell ubuntu rc