Linux上的job管理

本文介绍如何在Linux环境下管理后台任务,包括将任务置于后台执行、暂停及恢复后台任务、将后台任务转至前台以及终止后台任务的方法。

引用 :http://blog.itpub.net/26277071/viewspace-714531/


1. 直接把job丢到后台执行 - &
只要在执行命令的后面加&,就可以把该命令丢到后台执行,如:
$ tar -zpcf ./man.config.tar.gz ./man.config &
[1] 3211
第一列是指job number,只和bash环境有关;
第二列是PID,进程号。
当出现以下输出时,表示执行结束了:
[1]    Done                          tar -zpcf ./man.config.tar.gz ./man.config
2. 将正在运行的job丢到后台中暂停 - [ctrl] - z
当一个job在运行时,如果按下[ctrl] - z 键,该job将会放到后台中暂停,如:
$ vi ./man.config  -- 正在用vi编辑一个文件,[ctrl] - z 之后退出vi,并取得前台的控制权。
查看当前后台job的状态:
$ jobs -l
[1]  +  4791 Suspended                     vim ./man.config
3. 将后台工作拿到前台处理 - fg
把刚刚vi的job拿到前台处理,就可以继续编辑文件了:
$ fg %1
vim ./man.config
4. 在后台工作运行 - bg
假设后台有处于暂停状态的job,我们想让它在后台运行,如:
$ jobs
[1]  - Suspended (tty output)        vim ./man.config
[2]  + Suspended                     find / -perm +7000 > ./text.txt
$ bg %2
[2]    find / -perm +7000 > ./text.txt &
 jobs
[1]  + Suspended (tty output)        vim ./man.config
[2]    Running                       find / -perm +7000 > ./text.txt
可以看到[2]job已经从暂停状态改为running状态了。
5. 管理后台job - kill
kill -1 :重新读取一次参数的配置文件 (类似reload);
kill -9 :强制删除Job;
kill -15:以正常的程序方式终止job(默认)。

### 设置和管理 Linux 中的 Cron 作业 Cron 是 Linux 和 Unix 系统中的守护进程,用于调度命令或脚本在特定时间执行。通过 `crontab` 文件可以定义这些定时任务。 #### 创建新的 Cron 作业 要编辑当前用户的 Crontab 文件,可使用如下命令: ```bash crontab -e ``` 这会打开默认的文本编辑器来修改该用户的 Crontab 条目[^2]。 #### 定义 Cron 表达式 每条记录由六个字段组成,分别是分钟、小时、日期、月份、星期几以及要运行的命令。星号(*)表示任何值;逗号(,)分隔列表项;连字符(-)指定范围;斜杠(/)用来设定间隔频率。 | 字段 | 含义 | |------------|--------------| | MIN | 分钟 (0-59) | | HOUR | 小时 (0-23) | | DOM | 日 (1-31) | | MON | 月 (1-12) | | DOW | 星期 (0-7) | | COMMAND | 要执行的命令 | 例如,在每天凌晨两点整备份文件夹 `/home/user/data` 到远程服务器上: ```bash 0 2 * * * rsync -avz /home/user/data user@remote:/backup/ ``` 此表达式的含义是在每个月的第一天至最后一天(`*`)、每年的一月至十二月(`*`) 的每周日到周六 (`*`) 凌晨两点零分(`0 2`) 执行一次同步操作。 #### 查看现有 Cron 作业 为了查看已有的计划任务,可以输入以下命令而不带参数: ```bash crontab -l ``` 这条指令将会显示当前用户所配置的所有周期性工作表单。 #### 删除所有 Cron 作业 如果想要清除所有的预定安排,则可以通过下面的方式实现: ```bash crontab -r ``` 请注意这个动作不可逆,请谨慎操作以防止误删重要数据。 #### 使用 Logrotate 配合 Cron 进行日志轮转 对于某些应用程序的日志文件来说,定期清理旧版本是非常必要的。Logrotate 工具可以帮助自动化这一过程,并且通常会被设置成每日的任务加入系统的 cron 计划当中去。安装完成后可通过简单的命令调用它来进行测试性的旋转处理[^3]: ```bash logrotate -d /etc/logrotate.conf ``` 这里 `-d` 参数代表调试模式,即不会真正改变任何东西而是打印出会做什么事情的信息给用户检查确认无误后再去掉该选项正式应用更改。 #### 自动重启内核恐慌后的系统 当遇到严重的错误导致操作系统无法继续正常运作时会发生所谓的“内核惊慌”。为了避免这种情况造成服务中断过久影响业务连续性,可以在启动加载程序 GRUB 或者 LILO 上添加内核参数让机器发生此类事件之后自行重新引导回到可用状态而不是停留在黑屏等待人为干预[^4]。 具体做法是在 `/etc/default/grub` 文件里找到对应行并加上 `panic=10` ,其中数字指定了延迟多少秒才触发重置行为。保存退出后记得更新 grub 配置使之生效即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值