nohup 命令的使用
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 查看后台运行的命令
有两个命令可以来查看,ps
和 jobs
。
区别在于 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 命令的使用的更多相关文章
- linux–nohup命令(转)
在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: /usr/local/mysql/bin/my ...
- 菜鸟学Linux命令:nohup命令启动程序
在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止. 要实现守护进程,一种方法是按守护进程的规则去编程,比较麻烦:另一种方法是仍然用普 ...
- nohup命令浅析
要将一个命令放到后台执行,我们一般使用nohup sh command & &都知道是放到后台执行这个命令,那么nohup是做什么的? 这就要从unix的信号说起,unix的信号机制可 ...
- Linux_解决nohup命令生成的多余的大日志文件
解决nohup命令生成的多余的大日志文件 经常使用命令 nohup /usr/bin/php /srv/www/update.php & 可以让它在后台安静的进行,但是有一个烦恼就是,它会生成 ...
- linux 后台运行命令 nohup命令
转载:http://if.ustc.edu.cn/~ygwu/blog/archives/000538.html 2005年04月18日 简单而有用的nohup命令在UNIX/LINUX中,普通进程用 ...
- Linux基础知识之—— nohup命令使程序在后台运行的方法
在linux操作系统中从后台一直运行某个程序的方法,就是使用nohup命令了. 参照网址:http://www.jb51.net/LINUXjishu/189964.html
- linux的nohup命令的用法
在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: /usr/local/mysql/bin/my ...
- LINUX nohup命令输入输出深浅进出
无论是否将 nohup命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中.如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中 ...
- 实用技巧:简单而有用的nohup命令介绍(转)
简单而有用的nohup命令在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止. 要实现守护进程,一种方法是按守护进程的规则去编程(本站 ...
- Linux nohup命令详解
nohup命令及其输出文件 ...
随机推荐
- 谁能告诉我如何通过Jenkins完成分布式环境搭建并执行自动化脚本
今天我们接着昨天的内容,看一看如何完成Jenkins分布式环境的搭建和使用,因为我之前也是自己一个人摸索的,如果有不对的地方,请各位看官私信指出. 新增分布式部署节点 在系统管理/节点管理中点击新建 ...
- C++的vector的使用方法
vector c++的vector的使用方法,创建,初始化,插入,删除等. #include "ex_vector.h" #include <iostream> #in ...
- 使用opencv为没有透明通道的图像加入透明通道
在图像处理中,我们经常需要处理带透明通道的图片,比如为图片或视频添加水印,为图片或视频添加字幕.贴图等.然而,我们的素材图片未必总是带有透明通道.比如,素材的背景本该透明的地方,却是黑色和白色.有时, ...
- python基础day3_str基础函数操作方法及for循环
字符串操作 s = 'uiehSdc hdsj$jfdks@' s1 = s.capitalize() #仅仅只首字母大写 print(s1) # 结果Uiehsdc s2 = s.upper() # ...
- PHP strcasecmp() 函数
实例 比较两个字符串(不区分大小写): <?php高佣联盟 www.cgewang.comecho strcasecmp("Hello world!","HELLO ...
- C/C++编程笔记:C语言预处理命令是什么?不要以为你直接写#就行!
很多小伙伴在自己写代码的时候,已经多次使用过#include命令.使用库函数之前,应该用#include引入对应的头文件.其实这种以#号开头的命令称为预处理命令. C语言源文件要经过编译.链接才能生成 ...
- [NLP]LSTM理解
简介 LSTM(Long short-term memory,长短期记忆)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失问题.以下先从RNN介绍. 简说RNN RNN(Recurrent ...
- Python中匿名函数与内置高阶函数详解
大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...
- 异步文件通道Java NIO你需要了解多少,来看看这篇文章
在Java 7,AsynchronousFileChannel 被添加到了Java NIO中.使用AsynchronousFileChannel可以实现异步地读取和写入文件数据. 创建一个Asynch ...
- 【av68676164(p41-p42)】内存管理功能
存储器的功能需求 容量足够大 速度足够快 信息永久保存 多道程序并行 多道程序并行带来的问题 共享:代码和数据共享,节省内存 保护:不允许内存中的程序相互间非法访问 实际存储器体系 三级存储体系 Ca ...