为什么初始化的Python进程看不到其他进程?

时间:2014-05-07 13:28:28

标签: python linux bash

我有一个在我的系统上运行的Python进程,并检查其他进程是否正在运行。我有一个问题,在重新启动时,我的Python不起作用。我认为它与启动时的环境有关。如果我停止我的Python脚本(从启动)并以root用户或“dataturbine”的用户启动它,它可以正常工作。以下是init脚本的有趣部分:

SERVER_HOST=`hostname`
SERVER_PORT='3333'
RBNB_LOG_DIR=/var/log/rbnb
LOG_FILE="${RBNB_LOG_DIR}/dataturbine-rpc.log"
DT_USER=dataturbine
OWNER=${DT_USER}:${DT_USER}
RBNB_RUN_DIR=/var/run/rbnb
PIDFILE=${RBNB_RUN_DIR}/dataturbine-rpc.pid
SCRIPT=/usr/local/rbnb/scripts/dataturbine.py

######################################################################################
start() {
if [ ${USER} == ${DT_USER} ]
   then
     ${SCRIPT} -logfile ${LOG_FILE} -bindport 12000 -bindip 0.0.0.0 > /dev/null 2>&1 & echo $! > ${PIDFILE}
   else
     su -m -c "${SCRIPT} -logfile ${LOG_FILE} -bindport 12000 -bindip 0.0.0.0  > /dev/null 2>&1 & echo \$"'!'" > ${PIDFILE}" ${DT_USER}
   fi
}

以下是运行以检查正在运行的进程的Python命令。它在init上的“WC”命令返回0,即使进程正在运行:

output = subprocess.check_output("/bin/ps -ef | /bin/grep 'DaqToRbnb' | /bin/grep -v grep | /usr/bin/wc -l", shell=True)

0 个答案:

没有答案