nohub 和 & 在linux上不间断后台运行程序

1.nohub(没安装的要先安装)

用途:不挂断地运行命令

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

无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。

如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。

退出状态:该命令返回下列出口值:   

2.&

用途:在后台运行

3.查看进程

jobs命令

只看当前终端生效的,关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令),或者查看GPU进程

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

ps命令

功能:查看当前的所有进程

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

扫描二维码关注公众号,回复: 14983192 查看本文章
ps -A / ps -e //显示所有进程信息
ps -u root //显示指定用户信息
ps -ef //显示所有进程信息,连同命令行
ps -ef|grep ssh // ps 与grep 常用组合用法,查找特定进程
ps -l // 将目前属于您自己这次登入的 PID 与相关信息列示出来
ps aux | egrep '(cron|syslog)' // 找出与 cron 与 syslog 这两个服务有关的 PID 号码

sudo nvidia-smi 可以查看到在GPU上运行的进程

sudo nvidia-smi

4.nohup的重定向

以下是定义日志打印级别,除了高于级别2的告警信息记录到log文件外,其余直接不记录

//只输出错误信息到日志文件
nohup ./program >/dev/null 2>log &
//什么信息也不要
nohup ./program >/dev/null 2>&1 &

0:表示标准输入
1:标准输出,在一般使用时,默认的是标准输出
2:标准错误信息输出

3.关于/dev/null文件

Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

5、关闭当前后台运行的命令

      kill命令:结束进程

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

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

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

6、前后台进程的切换与控制

     (1)fg命令

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

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

     (2)Ctrl + z 命令

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

     (3)bg命令

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

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

7、top命令显示进程

性能分析工具,能够实时显示系统中各个进程资源占用状况

猜你喜欢

转载自blog.csdn.net/qq_42845932/article/details/125232631
今日推荐