Linux-nohup命令使用方法详解
作者:喻师傅
在Linux环境中,nohup命令用于在用户退出或注销后继续运行命令,当终端关闭时,所有在该终端中运行的进程会收到SIGHUP信号并被终止,但使用nohup可以避免这种情况,本文介绍了nohup的基本用法,感兴趣的朋友一起看看吧
Linux-nohup命令使用方法
今天在终端页面挂着跑任务,被旁边老哥教育了🤣🤣说我这终端一不小心退出,任务就停了,让我用nohup在后台跑~(当时一愣一愣的哈哈🤣🤣🤣)
在此记录一下nohup的使用方法,以后就知道啦~
1. 什么是 nohup?
nohup
(no hang up
别挂电话🤣🤣)用于在用户退出或注销后继续运行命令。
通常,当终端关闭时,所有在该终端中运行的进程都会收到 SIGHUP 信号(挂起信号),并被终止。使用 nohup
可以避免这种情况。
2. 基本语法
nohup command [arguments] &
- command:要执行的命令或程序。
- arguments:传递给命令的参数(可选)。
- &:将命令放入后台执行,允许用户继续使用终端。
- 长时间运行的任务:例如数据处理、备份脚本等,需要在后台运行的任务。
- 远程会话:当通过 SSH 连接到服务器时,如果你开始了一个长时间的任务,可以使用
nohup
来确保任务不会因网络断开而终止。
后台运行简单命令:
nohup sleep 300 &
- 后台运行
sleep
命令,持续 300 秒,即使你退出终端,它也会继续执行。 后台运行脚本:
nohup ./my_script.sh &
my_script.sh
会在后台运行,并且不会因为退出终端而被中断。 输出重定向:
将输出保存到文件(比如说跑任务时候的实时输出、日志啥的。)
nohup ./my_script.sh > output.log 2>&1 &
> output.log
将标准输出重定向到output.log
文件。2>&1
将标准错误重定向到标准输出,所有输出(包括错误信息)都会记录在output.log
中。- (好奇怪哈哈哈🤣🤣就这么用吧,我看教我的老哥也是,帮我把任务日志重定向到自定义的一个文件里面,我在里面查到的跟在终端跑的时候的输出是一样的。)
如果不重定向输出,nohup
会将所有输出保存在当前目录的 nohup.out
文件中。如果该文件已经存在,输出将会追加到该文件中。
指定不同的输出文件
也可以直接指定不同的输出和错误文件:
nohup ./my_script.sh > my_output.log 2> my_error.log &
- 标准输出写入
my_output.log
,而错误输出写入my_error.log
。 查看后台运行的进程
jobs
查看系统中所有进程,可以使用 ps
命令:
ps aux | grep sleep
- grep是过滤哈~
- 列出所有包含
sleep
的进程。
终止进程
找到进程 ID (PID) 后,可以使用 kill
命令终止它:
首先,找到 PID:
ps aux | grep my_script.sh
然后,使用 kill
命令:
kill <PID>
如果进程没有响应,可以使用 kill -9 <PID>
强制终止。
到此这篇关于Linux-nohup命令使用方法的文章就介绍到这了,更多相关Linux nohup命令使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!