Linux jobs
约 617 字大约 2 分钟
2025-01-11
介绍
jobs 主要用于显示系统中的任务列表及其运行状态。
该命令可以显示任务号及其对应的进程号,其中任务号是以普通用户的角度进行的,而进程号则是从系统管理员的角度来看的。一个任务可以对应一个或多个进程号。
jobs 是 Shell 内建命令
语法
$ jobs [-lnprs] [ <jobspec> ... ]
$ jobs -x <command> [ <args> ... ]参数
-l除正常信息外,还列出进程ID。-n仅显示上次通知用户后状态发生改变的作业信息。-p仅显示任务对应的进程号。-r仅显示运行状态(running)的任务。-s仅显示停止状态(stoped)的任务。-xjobs将在command或args中找到的任何作业替换为相应的进程组ID,并执行command。
使用
jobs -l
jobs的-l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。
$ jobs -l
[1] + 24440 running nohup python3 ./wl_apscheduler.py前后台切换
Ctrl + c会终止前台命令,也是我们经常用来关闭任务的。Ctrl + z可以将一个正在前台执行的命令放到后台,并且处于暂停状态。
^Z
[1] + 1588 suspended pnpm run docs:dev这个时候任务是被暂停的状的,需要使用bg %jobnumber继续执行才能正常访问。
jobs -l查看当前有在后台运行的任务。
$ jobs -l
[1] + 1588 suspended pnpm run docs:devbg将一个在后台暂停的命令,变成在后台继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出。
$ bg %1
[1] + 1588 continued pnpm run docs:devfg将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg %jobnumber(是命令编号,不是进程号)将选中的命令调出。
将后台的所有任务调至前台运行。
$ fg
[1] + 1588 running pnpm run docs:dev将指定的任务调至前台运行。
$ fg %1
[1] + 1588 continued pnpm run docs:dev注意 不管在后台任务是运行还是未运行,执行fg或fg %jobnumber之后,都会切换到前台运行。
