2016-04-19 17 views
1

我都试过但是执行的bash启动停止脚本执行Python脚本我正在和错误使用bash

nohup的:无法运行命令'python2.7 /home/shopStart.py':无这样的文件或目录

我想按照这个岗位shell start/stop for python script,但已经改变了启动命令来执行python2.7

/home/shopStart.py 

这里是我的代码:

#!/bin/bash 

script_home="/home" 
script_name="$script_home/shopStart.py" 
pid_file="$script_home/shoppid.pid" 

# returns a boolean and optionally the pid 
running() { 
    local status=false 
    if [[ -f $pid_file ]]; then 
     # check to see it corresponds to the running script 
     local pid=$(< "$pid_file") 
     local cmdline=/proc/$pid/cmdline 
     # you may need to adjust the regexp in the grep command 
     if [[ -f $cmdline ]] && grep -q "$script_name" $cmdline; then 
      status="true $pid" 
     fi 
    fi 
    echo $status 
} 

start() { 
    echo "starting $script_name" 
    nohup "python $script_name" & 
    echo $! > "$pid_file" 
} 

stop() { 
    # `kill -0 pid` returns successfully if the pid is running, but does not 
    # actually kill it. 
    kill -0 $1 && kill $1 
    rm "$pid_file" 
    echo "stopped" 
} 

read running pid < <(running) 

case $1 in 
    start) 
     if $running; then 
      echo "$script_name is already running with PID $pid" 
     else 
      start 
     fi 
     ;; 
    stop) 
     stop $pid 
     ;; 
    restart) 
     stop $pid 
     start 
     ;; 
    status) 
     if $running; then 
      echo "$script_name is running with PID $pid" 
     else 
      echo "$script_name is not running" 
     fi 
     ;; 
    *) echo "usage: $0 <start|stop|restart|status>" 
     exit 
     ;; 
esac 
+0

这似乎是一个文件位置的问题..你可以在问题中显示文件系统上的文件位置? –

+1

@ MohamedGad-Elrab我接受了命令并在ssh会话中运行了它,并且运行正常。我也在脚本所在的文件夹中做了一个pwd – Johnathon64

回答

1

python命令放在引号外。

制作nohup "python $script_name" &为:

nohup python "$script_name" & 

否则的"python $script_name"扩张将作为nohup参数文件路径处理。