linux常用功能——后台运行

linux常用功能——后台运行不中断的在后台运行 test sh 其中 amp 只在后台运行 命令详解 0 stdin 1 stdout 2 stderr

大家好,欢迎来到IT知识分享网。

不中断的在后台运行test.sh:

nohup ./test.sh &

其中,“&” : 只在后台运行

nohup : 不挂断的运行,注意并没有后台运行的功能,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行。

注意了nohup没有后台运行的意思、&才是后台!!!

linux常用功能——后台运行

如图,提交到后台以后,会告诉你当前窗口的命令编号“[1]”,以及该进程在系统中的进程编号64746。

你可以通过以下两个方式,停掉你后台的程序:

法子1:在该窗口找到命令编号,然后执行kill %num,如kill %1

法子2:或者利用系统进程编号,然后执行kill pid,如64746

当进程提交太久,找不到两个编号的时候,我们可以通过以下命令进行查看:

1. 使用ps -ef |grep test.sh可查看到正在运行的test.sh脚本进程。

2. jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。(展示该窗口下提交的任务),以及命令编号。

ps命令的使用,见linux常用命令——ps。

也可以通过以下命令查看详细信息:

ps -aux | grep "test.sh" #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分

其他使用技巧:

  1. 将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。
  2. 将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。

命令详解:

nohup command > myout.file 2>&1 &

0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error)

2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到myout.file文件中。默认情况下,后台运行的报告信息会被导入到目录下的nohup.out文件中。

0 22 * * * python test.py > test.log 2>&1

这是放在系统中的定时任务,晚上22点时候执行这个任务,启动这个python的脚本,并把日志写在test.log文件中。

使用实例:

下载:使用aspera下载EBI数据库的测序数据。(如果大家感兴趣,接下来可以写一下关于公共数据库下载的内容。)

nohup ascp -QT -l 100M -i ~/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR310/004/SRR/SRR.fastq.gz . &

nohup+命令+&:将命令放置到后台运行,并且断开连接依旧运行,QT参数可以断点续存并且加到最大速度。

忘记挂后台了怎么办?

  1. ctrl + z 把程序挂起,jobs 查看任务状态。是否已经被停止和命令编号[num]
  2. 使用bg %num命令把作业号为1的任务放入后台,并从停止状态变为运行状态,相当于加了&后接着运行。
  3. 运行disown -h %num,表示在终端关闭时不对作业号为1的程序发送终止信号,外部因素将不影响程序的运行。

nohup和disown都可以使程序不挂断,可以获得一样的效果,但原理不太一致。
nohup可以使程序忽略挂断信号(SIGHUP)或者使程序脱离终端的控制,从而终端不能再对其发送挂断信号(SIGHUP);
disown则是内生于shell,告诉shell在终止时不对对应程序发送挂断信号(SIGHUP)。

感谢大家的观看与支持!!!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/108482.html

(0)
上一篇 2024-11-12 07:15
下一篇 2024-11-15 15:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信