shell后台执行命令

shell后台执行命令

概述

让程序在后台运行,而不再终端屏幕上运行

  • con,系统调度进程,在一周或者一月的不同时间段上来运行,
  • at,在一个特殊的时间运行一些特殊的命令,
  • &,在后台运行一个占用时间不长的命令
  • nohub,使用他在后台运行一个命令,即使用户退出也不熟影响

cron和crontab

每一个用户都可以有一个crontab文件来保存调度信息。

crontab文件域

第1列 分钟 1 ~ 5 9
第2列 小时 1 ~ 2 3 ( 0 表示子夜)
第3列 日1 ~3 1
第4列 月1 ~1 2
第5列 星期0~6(0表示星期天)
第6列 要运行的命令

-表示时间范围,1-5
,来表示和,1,4
*表示连续的时间段,或者对域没有特别的限定

crontab命令

Crontab [-u user] -e -l -r
# -u用户名
# -e编辑crontab文件,crontab文件是一个系统文件,通过这种方式会用系统默认的编辑器打开
# -l列出crontab文件中的内容
# 删除crontab文件

创建contab文件

# 创建名为<usr>cron的文件,如devcron
# 创建名为devcron的文件
crontab devcron

at命令

at [-f script] [-m -l -r] [time] [date]
  • -f script 是所要提交的脚本或命令。
  • -l 列出当前所有等待运行的作业。atq命令具有相同的作用。
  • -r 清除作业。为了清除某个作业,还要提供相应的作业标识(ID);有些UNIX变体只接受atrm作为清除命令。at -r [job num]或者atrm [job num]
  • -m 作业完成后给用户发邮件。
  • time at命令的时间格式非常灵活;可以是H、HH.HHMM、HH:MM或H:M,其中H和M分别是小时和分钟。还可以使用a.m.或p.m.。
  • date 日期格式可以是月份数或日期数,而且at命令还能够识别诸如today、tomorrow这样的词。

&命令

命令用法

当前台运行某个作业时,终端被占据;而在后台运行某个作业时,它就不会占据终端。&命令用作吧作业放到后台去执行。

# 如下命令将后台的运行命令的结果和错误都输出到out.file文件中
command >out.file 2>&1 &

与ps和kill命令搭配使用

# 通过ps查找相应进程
ps
# 通过kill杀死相关进程
kill -signal [process_number]
ps命令

选项:

  • a:显示现行终端机下的所有进程,包括其他用户的进程;
  • u:显示进程拥有者、状态、资源占用等的详细信息(注意有“-”和无“-”的区别);
  • x:显示没有控制终端的进程。通常与 a 这个参数一起使用,可列出较完整信息;
  • -e:显示所有进程;
  • -f:完整输出显示进程之间的父子关系;
  • -l:较长、较详细的将该 PID 的的信息列出;
  • -o:自定义显示的字段;

nohub

如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户之后继续运行相应的进程。Nohup就是不挂起的意思(nohangup)。

nohup command &

# 重定向输出
nohup command > myout.file 2>&1
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值