nohup 命令的使用

1. nohup简介

nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

nohup 是 no hang up 的缩写,就是不挂断的意思。

nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。

在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。

2. nohup案例介绍

2.1 后台执行

nohup : 加在一个命令的最前面,表示不挂断的运行命令

& : 加载一个命令的最后面,表示这个命令放在后台执行

#使用nohup命令执行这个脚本
[look@tomcat ~]$ nohup /bin/sh /home/look/thread.sh > /dev/null 2>&1 &
[1] 3831

2.2 查看后台运行的命令

有两个命令可以来查看,psjobs

区别在于 jobs 只能查看当前终端后台执行的任务,换了终端就看不见了。

而ps命令适用于查看瞬时进程的动态,可以看到别的终端的任务。

2.2.1 jobs

[look@tomcat ~]$ jobs
[1] 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log &
[2]- 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 &
[3]+ 完成 nohup /bin/sh /home/look/thread.sh > /dev/null 2>&1

先后起了三个后台运行的进程,使用jobs后都显示出来了。“+”代表最近的一个任务(当前任务),“-”代表之前的任务。

只有在当前命令行中使用 nohup和& 时,jobs命令才能将它显示出来。如果将他们写到 .sh 脚本中,然后执行脚本,是显示不出来的

2.2.2 ps命令

[look@tomcat ~]$ ps -aux|grep tail
look 3551 0.0 0.0 108092 616 pts/1 S+ 14:06 0:00 tail -100f Threads_logs/2020-08-19-threads.log
look 3870 0.0 0.0 108092 616 pts/0 S 14:43 0:00 tail -100f Threads_logs/2020-08-19-threads.log
look 3871 0.0 0.0 108092 612 pts/0 S 14:44 0:00 tail -100f Threads_logs/2020-08-19-threads.log
look 3898 0.0 0.0 112824 980 pts/0 R+ 15:01 0:00 grep --color=auto tail

这个是查看进程常用的命令

a: 显示所有程序

u: 以用户为主的格式来显示

x: 显示所有程序,不以终端机来区分

2.2.3 关闭当前后台运行的程序

1)kill 命令

通过jobs命令查看jobnum,然后执行 kill %jobnum

[look@tomcat ~]$ jobs
[1]- 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log &
[2]+ 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 & [look@tomcat ~]$ kill %2 [look@tomcat ~]$ jobs
[1]- 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log &
[2]+ 已终止 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1

通过ps命令查看进程号PID,然后执行 kill %PID

[look@tomcat ~]$ jobs
[1]+ 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log &
[look@tomcat ~]$ kill -9 3870
[look@tomcat ~]$ jobs
[1]+ 已杀死 nohup tail -100f Threads_logs/2020-08-19-threads.log

2)如果是前台进程的话,直接执行 Ctrl+c 就可以终止了

2.2.4 前后台进程的切换与控制

fg命令:将后台中的命令调至前台继续运行

如果后台中有多个命令,可以先用jobs查看jobnun,然后用 fg %jobnum 将选中的命令调出。

[look@tomcat ~]$ jobs
[1]- 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log &
[2]+ 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 &
[look@tomcat ~]$ fg 2
nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1

Ctrl + z 命令:将一个正在前台执行的命令放到后台,并且处于暂停状态

[look@tomcat ~]$ fg 2
nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1
^Z
[2]+ 已停止 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 [look@tomcat ~]$ jobs
[1]- 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log &
[2]+ 已停止 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1

bg命令:将一个在后台暂停的命令,变成在后台继续执行

如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum 将选中的命令调出继续执行。

[look@tomcat ~]$ bg 2
[2]+ nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 & [look@tomcat ~]$ jobs
[1]- 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log &
[2]+ 运行中 nohup tail -100f Threads_logs/2020-08-19-threads.log > /dev/null 2>&1 &

nohup 命令的使用的更多相关文章

  1. linux–nohup命令(转)

    在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: /usr/local/mysql/bin/my ...

  2. 菜鸟学Linux命令:nohup命令启动程序

    在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止. 要实现守护进程,一种方法是按守护进程的规则去编程,比较麻烦:另一种方法是仍然用普 ...

  3. nohup命令浅析

    要将一个命令放到后台执行,我们一般使用nohup sh command & &都知道是放到后台执行这个命令,那么nohup是做什么的? 这就要从unix的信号说起,unix的信号机制可 ...

  4. Linux_解决nohup命令生成的多余的大日志文件

    解决nohup命令生成的多余的大日志文件 经常使用命令 nohup /usr/bin/php /srv/www/update.php & 可以让它在后台安静的进行,但是有一个烦恼就是,它会生成 ...

  5. linux 后台运行命令 nohup命令

    转载:http://if.ustc.edu.cn/~ygwu/blog/archives/000538.html 2005年04月18日 简单而有用的nohup命令在UNIX/LINUX中,普通进程用 ...

  6. Linux基础知识之—— nohup命令使程序在后台运行的方法

    在linux操作系统中从后台一直运行某个程序的方法,就是使用nohup命令了. 参照网址:http://www.jb51.net/LINUXjishu/189964.html

  7. linux的nohup命令的用法

    在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: /usr/local/mysql/bin/my ...

  8. LINUX nohup命令输入输出深浅进出

    无论是否将 nohup命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中.如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中 ...

  9. 实用技巧:简单而有用的nohup命令介绍(转)

    简单而有用的nohup命令在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止. 要实现守护进程,一种方法是按守护进程的规则去编程(本站 ...

  10. Linux nohup命令详解

    nohup命令及其输出文件                                                                                       ...

随机推荐

  1. web自动化 -- ActionChains()的鼠标操作

    webdriver模块下的ActionChains类 一.两个主要组件 1.实例化  ActionChains() 2.ActionChains(driver).perform() perform() ...

  2. Python语言及其应用|PDF高清完整版免费下载|百度云盘|Python

    百度云盘:Python语言及其应用PDF高清完整版免费下载 提取码:6or6 内容简介 本书介绍Python 语言的基础知识及其在各个领域的具体应用,基于最新版本3.x.书中首先介绍了Python 语 ...

  3. Golang获取目录下的文件及目录信息

    一.获取当前目录下的文件或目录信息(不包含多级子目录) func main() {  pwd,_ := os.Getwd() //获取当前目录  //获取文件或目录相关信息  fileInfoList ...

  4. 4. JSON字符串是如何被解析的?JsonParser了解一下

    公司不是你家,领导不是你妈.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BA ...

  5. 00_02_使用Parallels Desktop创建Windos7虚拟机

    准备工作 如果要看图片的准备过程请参考该链接 需要注意的是给CPU配置为一个核,内存分配1024M 硬盘空间划分为60G 操作系统安装设置 注:windows系统设置一般都是"下一步&quo ...

  6. express,node.js实现获取本地文件夹下面的全部图片文件

    http://www.luyixian.cn/javascript_show_169354.aspx 按照网上的教程试了多次,处理了各种结果后还有报错, 最后的报错是cant find module ...

  7. 配置mongoDB的错误

    1,将启动配置到服务的时候没有反应,后来发现没有用管理员模式打开shell命令,所以没有反应. 2,用管理员模式的时候报错 格式问题,将由空格的路径用“”包住即可 3.启动的时候报错windows不能 ...

  8. try{}catch的隐藏(如何优雅的实现异常块)

    在项目中,我们会遇到异常处理,对于运行时异常,需要我们自己判断处理.对于受检异常,需要我们主动处理. 但是繁琐的try{}caht嵌套在代码里,看着很不舒服,这里我们不讨论性能,就代码来讲,来看看如何 ...

  9. PHP filesize() 函数

    定义和用法 filesize() 函数返回指定文件的大小. 如果成功,该函数返回文件大小的字节数.如果失败,则返回 FALSE. 语法 filesize(filename) 参数 描述 filenam ...

  10. PHP pclose() 函数

    定义和用法 pclose() 函数关闭由 popen() 打开的进程. 如果失败,该函数返回 FALSE. 语法 pclose(pipe) 参数 描述 pipe 必需.规定由 popen() 打开的进 ...