当前位置: 首页 > Linux

linuxnohup命令详解,终端关机程序照样可以执行!

时间:2023-04-06 11:12:51 Linux

大家好,我是良旭。在工作中,我们经常运行一个非常重要的程序。有时这个程序需要运行几个小时,甚至几天。如果此时我们退出终端,或者网络不好导致连接中断,程序就会终止。而这种情况,绝对不是我们愿意看到的。我们希望即使终端关闭,程序仍然可以运行。此时我们可以使用nohup命令。nohup命令是英文短语nohangup的缩写,意思是不挂断,即程序不退出。该命令将使程序忽略HUP信号,以确保程序能够正常进行。有些人可能对HUP信号不熟悉。它是终端终止时发送给与其关联的进程的信号。进程收到这个信号后会停止运行。所以如果不想让进程被这个信号杀死,可以忽略这个信号。这就是nohup命令的作用。在本文中,我们将详细介绍nohup命令的具体用法。nohup命令的基本语法nohup命令的基本语法如下:$nohup命令参数或:$nohup选项如果你想获得更多关于nohup用法的介绍,可以查看它的帮助页面:$nohup--help如果需要查看版本号,可以使用--version选项。$nohup--version使用nohup命令启动程序如果需要运行一个程序,即使退出相应的Shell,仍然可以运行程序,可以使用nohup来运行程序:$nohupcommand当程序启动后,程序对应的日志输出及其错误日志会记录在nohup.out文件中,该文件一般位于主目录或当前目录。重定向程序的输出如果我不想把程序的输出保存在主目录或当前目录,我想保存在我指定的路径并自定义文件名,我该怎么办?此时我们可以使用重定向动作>。例如,我有一个脚本myScript.sh,我想将它的输出保存在我的主目录的输出目录中,文件名为myOutput.txt,我可以这样运行它:$nohup./myScript.sh>~/输出/我的输出。txt使用nohup命令在后台启动程序。如果想让程序在后台运行,可以加上&符号。但是这样运行之后,程序就消失得无影无踪了。要将程序带回终端,请使用fg命令。该命令的输出日志会保存在nohup.out文件中,可以使用cat等命令查看。第二行的数字8699代表这条命令对应的进程号,即pid。我们可以使用ps命令来找到这个进程。使用nohup同时运行多个程序如果需要同时运行多个程序,没有必要一个一个运行,直接使用&&符号即可。例如,如果你想同时运行mkdir、ping和ls,你可以这样运行:$nohupbash-c'mkdirfiles&&ping-c1baidu.com&&ls'>output.txt终止在后台运行的进程。顺便说一句,nohup命令结合&符号可以让进程在后台运行,即使终端关闭也不受影响。这个时候,如果你想终止进程,怎么办呢?最简单的就是kill命令,相信你已经用过很多次了。$kill-9PID如何找到进程对应的pid?我们可以使用ps命令。$辅助|grepmyScript.sh或者您可以使用pgrep命令。接下来,使用kill命令终止进程。$kill-914942最后,最近有很多朋友找我要一份Linux学习路线图,所以我根据自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以和我一起把这本电子书做得更完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员和高级架构师免费发送工件的必备资源|支持搜索的资源网站