工作管理

Posted shizhuoping

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工作管理相关的知识,希望对你有一定的参考价值。

工作管理

工作管理是在单一终端机接口处同时进行多个工作的行为管理,其实同时开启多个终端机一样能同时完成多个任务,但是由于某些情况下可能限制用户只能开启一个终端机接口,此时就要用工作管理。

在进行工作管理时,所有的工作都是当前bash的子进程,当前的工作管理无法从终端tty1管理tty2,进行工作管理有几个限制条件:

1、这些工作所触发的进程必须来源于当前shell的子进程

2、可以放入背景运行的工作不能等待系统交互,也不能用ctrl+c终止

丢到背景执行:&

在执行的命令后加&可以直接将任务放在后台执行,执行这条语句后前台会打印一个用中括号括起来的job号码和指令触发的PID,有时虽然任务被放到后台,但是输出信息还是会挤满前景,此时可以将输出信息重定向到一个文件中,然后放入后台执行,这样可以保证其他指令输入时不被打断:

tar -zpcvf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1 &

丢到背景中暂停执行:ctrl+z

按ctrl+z可以将命令放在背景中,执行后会出现中括号括起来的job号码。

控制job的运行

显示后台运行的程序:jobs -l,-l的意思是显示pid。jobs命令会显示多行,一行代表一个后台工作,行首代表后台工作编号,后面会跟一个+或-,也可能没有符号标记,+代表最后放入后台的工作(也是恢复时首先恢复的),-代表倒数第二个放入后台的工作。每个job都会有对应的状态,Running代表后台运行,Stoppd代表暂停。

恢复后台运行的程序:fg %工作号不加%代表恢复+对应的后台工作。

让后台暂停的工作恢复到后台执行:bg %工作号(这个命令必须不能和前台有交互才能恢复到后台执行,如top)

强制移除后台任务:kill -9 %job号,正常结束后台任务:kill -15 %job号

脱机管理

之前的所有放入后台的程序仅仅是将任务放到当前bash的背景下运行,而不是放到系统的背景中运行,也就是说远程连接到linux将任务放到背景中执行,断开和linux的连接会导致这些任务中断,如果想断开连接后继续生效,可以用at指令,也可以用nohup指令:nohup 命令 &

这个指令的效果就相当于放入后台执行,只不过退出登录后依然在执行,但是注意nohup不支持bash内建的命令。

以上是关于工作管理的主要内容,如果未能解决你的问题,请参考以下文章

使用 Git 来管理 Xcode 中的代码片段

massCode 一款优秀的开源代码片段管理器

如何管理在每个 git 版本中添加私有代码片段?

如何使用Android片段管理器传递变量[重复]

Android:使用支持片段管理器时复制片段

YASnippet - emacs 的代码片段管理工具