Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash中运行命令,然后退出而不终止该命令_Bash_If Statement - Fatal编程技术网

在bash中运行命令,然后退出而不终止该命令

在bash中运行命令,然后退出而不终止该命令,bash,if-statement,Bash,If Statement,我试图在bash脚本中运行几个命令,但是它会挂起我的命令,等待它完成(它不会)。此脚本只是确保其运行 #!/bin/bash ps cax | grep python > /dev/null if [ $? -eq 0 ]; then echo "Process is running." else echo "Process is not running... Starting..." python likebot.py echo $(ps aux | grep pytho

我试图在bash脚本中运行几个命令,但是它会挂起我的命令,等待它完成(它不会)。此脚本只是确保其运行

#!/bin/bash
ps cax | grep python > /dev/null
if [ $? -eq 0 ]; then
  echo "Process is running."
else
  echo "Process is not running... Starting..."
  python likebot.py
  echo $(ps aux | grep python | grep -v color | awk {'print $2'})
fi

一旦到达python命令,它就会在执行命令时挂起。直到我输入c,它才会给出pid。无论如何,我可以让它运行这个bash脚本,并在命令运行后退出bash脚本(无需等待命令完成)。

一般来说,如果您希望执行命令而不等待它,您可以简单地使用
&
作为分隔符,而不是
或换行符。执行此操作时,该进程的pid可用于shell的特殊变量
。如果要等待该过程完成,可以使用
wait
。如果您不想等待,只需省略
wait
。就你而言:

python likebot.py &  # Start command asynchronously
echo $!              # echo the pid of the most recent asynchronous process

通常,如果您希望执行命令而不是等待它,您可以简单地使用
&
作为分隔符,而不是
或换行符。执行此操作时,该进程的pid可用于shell的特殊变量
。如果要等待该过程完成,可以使用
wait
。如果您不想等待,只需省略
wait
。就你而言:

python likebot.py &  # Start command asynchronously
echo $!              # echo the pid of the most recent asynchronous process

因为看起来像BoT应该总是运行,你可能也想考虑“NoHUP”,一个裸露的工作仍然是登录过程的一个孩子,如果它死了,它就会死。

< P>因为看起来像BoT BOT应该总是运行,你可能也想考虑“NoHUP”,使用裸机&该作业仍然是您登录过程中的一个子项,如果该子项失效,则该作业将失效。

您是否已经尝试了
&
操作员?您可能应该在登录时提交此作业。反馈可能会教你很多关于shell编程的知识。你已经试过
&
操作符了吗?你可能应该在上提交这个。反馈可能会教你很多关于shell编程的知识。