Linux “诺胡普”;“不起作用”;MPIrun
我试图使用“nohup”命令来避免在linux MATE上退出终端时终止后台进程 我要运行的进程是MPIrun进程,我使用以下命令:Linux “诺胡普”;“不起作用”;MPIrun,linux,nohup,Linux,Nohup,我试图使用“nohup”命令来避免在linux MATE上退出终端时终止后台进程 我要运行的进程是MPIrun进程,我使用以下命令: nohup mpirun -np 8 solverName -parallel >log 2>&1 当我离开终端时,在不同内核上运行的进程被终止 另外一件我在日志文件中提到的事情是,如果我尝试只运行以下命令 mpirun -np 8 solverName -parallel >log 2>&1 然后按CTRL+Z(停止进
nohup mpirun -np 8 solverName -parallel >log 2>&1
当我离开终端时,在不同内核上运行的进程被终止
另外一件我在日志文件中提到的事情是,如果我尝试只运行以下命令
mpirun -np 8 solverName -parallel >log 2>&1
然后按CTRL+Z(停止进程),日志文件指示:
Forwarding signal 20 to job
我无法实际停止mpirun命令。因此,我想在我正在做的事情中有一些我不明白的事情,要杀死进程,您需要以下命令。 第一:
$jobs-l
这将为您提供如下流程的PID
[1]+47274运行nohup mpirun-np 8 solverName-parallel>日志2>&1
然后执行以下命令终止进程
kill-9{程序PID即47274}
这将帮助您终止该过程
请注意,ctrl+Z不会终止进程,但会暂停进程
对于问题的第一部分,我建议尝试这个命令,看看它是否有效
nohup nohup mpirun-n 8——您的\u标志。/compited\u solver\u name>Output.txt&
这对我有用。
告诉我们它是否对您不起作用。后台运行的作业仍然属于您的登录shell(直到
mpirun
命令终止,nohup
命令才会退出),因此在您断开连接时会收到信号。这个脚本(我称之为bk
)就是我使用的:
#!/bin/sh
#
# @(#)$Id: bk.sh,v 1.9 2008/06/25 16:43:25 jleffler Exp $"
#
# Run process in background
# Immune from logoffs -- output to file log
(
echo "Date: `date`"
echo "Command: $*"
nice nohup "$@"
echo "Completed: `date`"
echo
) >>${LOGFILE:=log} 2>&1 &
(如果你很好奇,请注意小心使用$*
和“$@”
。nice
在我不在时以较低的优先级运行作业。1987-08-10年,版本1.1被签入版本控制-SCCS。)
对于您的流程,您可以运行:
$ bk mpirun -np 8 solverName -parallel
$
提示几乎立即返回。代码中的内容与直接从命令行执行的操作之间的主要区别是:
(nohup mpirun -np 8 solverName -parallel >log 2>&1 &)
括号开始一个子shell;子shell在后台运行nohup
,具有I/O重定向并终止。continue命令是登录shell的孙子,不会受到登录shell的干扰
我不是这方面的专家,从来没有使用过它,所以有可能它做了一些我没有预料到的事情。我对手册页面的印象是,尽管它可以在多个节点上运行多个其他进程,但它的行为或多或少类似于一个常规进程。也就是说,它运行其他进程,但监视和协调它们,并且仅在其子进程完成时退出。如果这是正确的,那么我所概述的就足够准确了