1.nohup

不挂断的运行命令

如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭中断后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令)

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

语法:nohup Command [ Arg … ] [ & ]

nohup ./bin/storm nimbus 

加在一个命令后,可以把这个命令放在后台运行如gftp &,

watch  -n 10 sh  test.sh  &  #每10s在后台执行一次test.sh脚本

3 &和nohup区别

command & 是后台运行 Ctrl + C后程序 不停止运行 ,关闭shell会话后或者其他原因导致shell会话退出 程序 停止运行

nohup command ,shell会话退出后,程序不停止运行,Ctrl+C程序停止运行

nohup后台运行脚本

nohup ./sh &

这样执行脚本很危险,shell关闭后,jobs发现不了,只能查找pid,利用kill终止

ps aux | grep "./sh"

此时要退出只能使用 【kill】 命令关掉该进程:

kill -9 进程号
-9:表示 kill信号 ,无法抓取,无法忽略,意思是“城管来了,小摊儿必须撤”

二、查看后台运行命令

1.jobs

查看当前终端后台运行命令 ,终端关闭后无法查看。

jobs -l选项可显示当前终端所有任务的PID,jobs的状态可以是running,stopped,Terminated。

+ 号表示当前任务,- 号表示后一个任务。

查看当前的进程。

输出列的含义:

  • F 代表这个程序的旗标 (flag), 4 代表使用者为 super user
  • S 代表这个程序的状态 (STAT)
  • UID 程序被该 UID 所拥有
  • PID 进程的ID
  • PPID 则是其上级父程序的ID
  • C CPU 使用的资源百分比
  • PRI 这个是 Priority (优先执行序) 的缩写
  • NI 这个是 Nice 值
  • ADDR 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 “-“
  • SZ 使用掉的内存大小
  • WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作
  • TTY 登入者的终端机位置
  • TIME 使用掉的 CPU 时间。
  • CMD 所下达的指令为何

ps -A: 查看所有进程信息

[root@localhost test6]# ps -A
PID TTY          TIME CMD
1 ?        00:00:00 init
2 ?        00:00:01 migration/0
3 ?        00:00:00 ksoftirqd/0
4 ?        00:00:01 migration/1

ps -u root:查看指定用户信息

ps -ef:显示所有进程信息,连同命令行

[root@localhost test6]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Nov02 ?        00:00:00 init [3]
root         2     1  0 Nov02 ?        00:00:01 [migration/0]
root         3     1  0 Nov02 ?        00:00:00 [ksoftirqd/0]

ps aux:列出所有目前正在内存中的程序。

[root@localhost test6]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  10368   676 ?        Ss   Nov02   0:00 init [3]
root         2  0.0  0.0      0     0 ?        S<   Nov02   0:01 [migration/0]

三 后台程序管理

1 关闭当前后台运行的命令

kill命令:结束进程

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

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

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

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

(1)fg命令

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

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

(2)Ctrl + z 命令

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

(3)bg命令

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

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

3 示例操作

$ ctrl+z 将当前运行的进程放入后台暂停
$ jobs ##列出后台进程
[1]+  已停止               putty
$ fg %1  #取出后台进程放入前台运行,%后面加进程序号
$ bg %1 ##将程序放入后台,继续执行
[1]+ putty &  ##程序在后台执行
$ kill -9 %1 ##强制杀死后台程序
$ xkill #通过点击鼠标结束相应程序

后台运行,如果不想看到控制台打印日志可以:
./test_nohup -t 2 > ./back_ground.txt 2>&1 &

0:标注输入,1:标准输出,2:标准错误输出

输出重定向到文件


意思标准输出重定向到文件‘back_ground.txt’中, 【2>&1】 意思是将标准错误输出重定向到标准输出,因为标准错误输出是没有缓冲区的而标准输出有,并且如果实时输出到文件中要 【flush】 输出缓冲区,否则未达到缓冲区大小时是不会输出到文件的。

如果不需要输出文件,则可以:
./test_nohup -t 2 > /dev/null 2>&1 &

将所有输出重定向到 【/dev/null】 这个 ‘空’ 设备文件,它会丢弃写入的内容,就感觉任何东西都被“宇宙黑洞”吞噬了一样。。。

嗯,是的,你可以跟【nohup】组合。。。
like this...: nohup ./test_nohup -t 2 > /dev/null 2>&1 & ,这样关闭‘窗口’程序依然在后台运行

有关后台进程管理的几个操作$ ctrl+z 将当前运行的进程放入后台暂停$ jobs ##列出后台进程[1]+ 已停止 putty$ fg %1 #取出后台进程放入前台运行,%后面加进程序号$ bg %1 ##将程序放入后台,继续执行[1]+ putty &amp; ##程序在后台执行$ kill -9 %1 ##强制杀死后台程序$ xki... 加在一个命令的最后,可以把这个命令放到 后台 执行, 关闭 当前终端后停止运行。 nohup 如果让程序始终在 后台 执行,即使 关闭 当前的终端也执行(之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/ 关闭 终端之后继续运行相应的 进程 关闭 中断后,在另一个终端jobs已经无法看到 后台 跑得程序了,此时利用ps( 进程 查看 命令) 只需在要处理的命令前加上 nohu...
一、为什么要使程序在 后台 执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期。我们用的环境是用putty远程连接到日本 Linux 服务器。所以使程序在 后台 跑有以下三个好处: 1:我们这边是否关机不影响日本那边的程序运行。(不会像以前那样,我们这网络一断开,或一关机,程序就断掉或找不到数据,跑了几天的程序只能重头再来,很是烦恼) 2:不影响计算效率 2:让程序在 后台 跑后,不会
直接用./sh 文件就可以运行,但是如果想 后台运行 ,即使 关闭 当前的终端也可以运行的话,需要nohup命令和&命令。 &命令:加在一个命令的最后,可以把这个命令放在 后台 执行 nohup命令:不挂断的运行命令 1. 使用命令ps -ef | grep " 后台任务 名称"来 查看 指定 后台任务 进程 信息。 2. 使用命令top来 查看 系统中所有 进程 的信息,包括 后台任务 。 3. 使用命令jobs来 查看 当前终端中的 后台任务 。 4. 使用命令nohup来启动 后台任务 ,使其在 后台运行 ,并将输出重定向到指定文件中,方便 查看 任务运行情况。 5. 使用命令systemctl来 查看 系统中正在运行的服务,包括 后台任务
CSDN-Ada助手: 嗨~好久未见你更新博文了,我们现在上线了AI创作助手哦~可为你的创作提供智能化帮助,快来试试吧~https://editor.csdn.net/md/?not_checkout=1&utm_source=blog_comment_recall,在编辑器页面右侧哦~~限免!! 同时我们为您准备了一份回归奖励,快来看看吧https://activity.csdn.net/creatActivity?id=10430&utm_source=blog_comment_recall 红黑树原理和算法详细介绍 weixin_52419291: 博主写的很好,有个小问题,就是添加的case3的配图中节点值为120的颜色应该是黑色吧,那换成黑的的话,左边也要再加一个黑节点 git merge命令应用的三种情景 苏州一中球王: 我见过讲的最清楚的文章 数据库触发器学习 潇洒的靓仔: 照着写我就是错的 Class.forName()用法详解 stoner992: 厉害了,评论支持下