linux下为程序创建启动和关闭的的sh文件,scrapyd为例

对于一些未提供service管理的程序  每次启动和关闭都要加上全部路径,想到可以做一个简单的启动和关闭控制的文件

 

下面以scrapy启动server为例,文件名为run.sh:

 

Python代码   收藏代码
  1. #端口号,根据此端口号确定PID  
  2. PORT=6800  
  3. #启动命令所在目录  
  4. HOME='/home/jmscra/scrapy/'  
  5.   
  6. #查询出监听了PORT端口TCP协议的程序  
  7. pid=`netstat -lnopt | grep :$PORT | awk '/python/{gsub(/\/python/,"",$7);print $7;}'`  
  8.   
  9.   
  10. start(){  
  11.    if [ -n "$pid" ]; then  
  12.       echo "server already start,pid:$pid"  
  13.       return 0  
  14.    fi  
  15.      
  16.    #进入命令所在目录  
  17.    cd $HOME  
  18.    nohup scrapy server &   #启动scrpayd服务器 把日志输出到HOME目录的nohup.out文件中   
  19.    echo "start at port:$PORT"  
  20. }  
  21.   
  22. stop(){  
  23.    if [ -z "$pid" ]; then  
  24.       echo "not find program on port:$PORT"  
  25.       return 0  
  26.    fi  
  27.      
  28.    #结束程序,使用讯号2,如果不行可以尝试讯号9强制结束  
  29.    kill -2 $pid     
  30.    echo "kill program use signal 2,pid:$pid"  
  31. }  
  32.   
  33. status(){  
  34.    if [ -z "$pid" ]; then  
  35.       echo "not find program on port:$PORT"  
  36.    else  
  37.       echo "program is running,pid:$pid"  
  38.    fi  
  39. }  
  40.   
  41. case $1 in  
  42.    start)  
  43.       start  
  44.    ;;  
  45.    stop)  
  46.       stop  
  47.    ;;  
  48.    status)  
  49.       status  
  50.    ;;  
  51.    *)  
  52.       echo "Usage: {start|stop|status}"  
  53.    ;;  
  54. esac  
  55.   
  56. exit 0  

 

 

使用时则可以

/path/run.sh start启动

/path/run.sh stop停止

/path/run.sh status 查看运行程序的pid

 

不要忘记为run.sh添加可执行权限

你可能感兴趣的:(linux下为程序创建启动和关闭的的sh文件,scrapyd为例)