将pid号保存在文件中



我正在linux服务器上使用nohup命令运行我的flask应用程序。我试图将PID数字保存为变量,或者只保存输出的PID数字。

例如,如果我在下面的命令中使用nohup运行我的flask_application

nohup python /home/app/run_flask.py > /home/temp/run_flask.out 2> /home/temp/run_flask.err &

这将在后台组中成功运行,我检查我的pid运行是否通过

ps -ef | grep /home/app/run_flask.py

我的服务器会退回这个

farid  108708      1  0 23:50 pts/0    00:00:00 python /home/app/run_flask.py
farid  112265  83174  0 23:52 pts/0    00:00:00 grep --color=auto /home/app/run_flask.py

我试图将PID捕获为变量或将其保存到文件中,它是112265,这样我就可以将其包含在我的shell脚本中,以在特定条件下杀死进程。我怎样才能做到这一点?

我已经尝试过使用这个命令,我能够打印出112265,但我不确定我不能通过添加"test1=ps ef…"将其存储为变量如果这是正确的方法。命令使用

ps -ef | grep /home/app/run_flask.py | tr -s ' ' | cut -d ' ' -f2 | tail -1

您可以在运行nohup命令后立即捕获命令的PID并存储到变量中。

nohup python /home/app/run_flask.py > /home/temp/run_flask.out 2> /home/temp/run_flask.err &
var=$!

或者保存到文件

nohup python /home/app/run_flask.py > /home/temp/run_flask.out 2> /home/temp/run_flask.err &
echo $! > saved_pid.txt

您可以这样做:

VAR=$(ps -ef | grep something_u_want | grep -v grep | awk '{print $2}')

然后VAR将保存该数字。

在您的示例中,112265是grep进程的PID。您可能应该在之后运行grep -v grep来排除它。

相关内容

  • 没有找到相关文章

最新更新