在bash中运行命令,然后退出而不终止该命令
我试图在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
#!/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编程的知识。