zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Linux||后台运行及查看状态命令

Linux后台状态命令 查看 运行
2023-06-13 09:17:01 时间

在使用Linux运行程序的时候,常常遇到需要耗费一定时间才能完成的文件,如果在前台运行,此时坐在电脑前的你只能被迫打开其他软件进行摸鱼。

既然前台影响你操作,那不如像Windows一样,把这个进程放入后台,然后接着打下一份工!就好像正在刷慕课的你,想同时打游戏,这时只需要把开着慕课的网页放在后台并打开游戏即可。

在Windows系统下,只需要点点点,而在Linux下,一行命令即可

nohup

nohup 是 no hang up 的缩写,即不挂断的意思,此命令没有后台运行,且终端不能标准输入。

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

语法格式 :nohup Command [Arg] [&]

参数说明:

Command:要执行的命令。

Arg:一些参数,可以指定输出文件。

&:让命令在后台执行,终端退出后命令仍执行。

在不对输出进行设置的时候,所有的输出会被重定向到nohup.out的文件中,或者 > /dev/null 丢弃到黑洞中。

如nohup command > out.file 2>&1 &

在上述例子中,0代表stdin (standard input),1代表stdout (standard output),2代表stderr (standard error)。2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到out.file文件中。

&和nohup

&:指在后台运行,当用户退出账号或终端时,命令将一起退出。

bash 1.sh &   #运行1.sh,当退出服务器时,该命令停止

nohup:不挂断的运行,注意并没有后台运行的功能,指用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,即使我们断开SSH连接也不会影响运行。

nohup bash 1.sh   #将bash 1.sh任务放到后台,关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session程序将依然继续运行。

如果把nohup和&结合起来,就能使命令在后台永久的运行。

nohup bash 1.sh &>out.file 2>&1  

查看命令运行状态

命令放到后台了,我想看看它现在是个啥状态,是卡住没跑了还是正在进行,又或者是已经跑完了,该如何查看呢?

01 cat 输出文件

cat out.file   # 查看输出文件

02 top 查看进程

top -u 用户名   # 查看该用户名的进程

通过查看S(state)状态栏,可以发现有的进程是S(sleeping)休眠中,有的是R(running)进行中。

另外,Z表示僵死状态,N表示该进程优先值是负数。