首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Init.d脚本无法执行Python脚本

Init.d脚本无法执行Python脚本
EN

Stack Overflow用户
提问于 2017-09-22 03:42:41
回答 1查看 1.8K关注 0票数 0

我目前遇到了一个关于init.d脚本的问题,该脚本应该执行Python脚本。我已经确保了Python文件和init脚本的权限。如果我只用echo "test" > /tmp/test.txt替换Python可执行代码行,初始化脚本就能正常工作。

Python文件打印一行,然后遍历它1000次。

代码语言:javascript
复制
#!/bin/sh
#
# /etc/init.d/incapsula-loggrabber
# init script for Incapsula.
# generated by 'myself'.
#
# chkconfig: 345 93 63
# description: Incapsula Logging Script
#

. /etc/init.d/functions

NAME=incapsula-loggrabber
DESC="Incapsula Script to Push logs to Splunk"
PYTHON="/bin/python"
PIDFILE="/var/run/incapsula-loggrabber.pid"
PYTHON_FILE="/root/inittest.py"

do_start() {
     echo Starting Incapsula Script...
     echo $PIDFILE is the file where pid resides
     sudo python $PYTHON_FILE & 
     RETVAL=`echo $?`
     [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$NAME
}

do_stop() {
    echo $PIDFILE is removed
    kill `cat $PIDFILE`
    RETVAL=`echo $?`
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$NAME
}

do_status() {
      if [ -e $PIDFILE ]; then
      echo $NAME is running, pid=`cat $PIDFILE`
      else
      echo $NAME is NOT running
      exit 1
      fi
}

case "$1" in 
    start)
       do_start
       ;;
    stop)
       do_stop
       ;;
    restart)
       do_stop
       do_start
       ;;
    status)
       do_status
       ;;
    *)
       echo "Usage: $0 {start|stop|status|restart}"
esac

exit 0

我是否遗漏了什么或者需要做什么修改才能让这个init脚本正常工作?

EN

回答 1

Stack Overflow用户

发布于 2017-09-26 07:04:55

这个问题已经解决了,我已经执行了反引号之间的python代码,这样它将首先执行,然后将进程ID写入/var/run下的文件,并根据python脚本将输出写入给定文件。

代码语言:javascript
复制
echo `/bin/python /root/inittest.py ` & echo $! > $PIDFILE 

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46352035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档