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

2024-10-02 02:24:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python进程在我的系统上运行,并检查是否有其他进程正在运行。我有一个问题,在重新启动时,我的Python无法工作。我想这和开机时的环境有关。如果我停止Python脚本(从boot开始)并以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)

Tags: 用户脚本logbin进程dirdtscript

热门问题