后台执行命令

  1. cron、crontab:执行计划任务

    cron是执行定时计划任务的守护进程。

    crontab命令用于创建、修改、删除和查看定时计划任务。每个用户都可以使用crontab命令创建自己的定时任务计划任务,生成的定时计划任务文件将以用户的账户名命名。


    定时计划任务文件由每行命令组成,每行有6个字段,由空格或制表符分隔。前5个字段表示运行任务的时间,最后一个字段是任务的命令。前5个字段的含义依次如下

    分钟:0-59

    小时:0-23

    日期:1-31

    月份:1-12 Jan-Dec

    星期:0-6 Sun-Sat

    星号(*):匹配所有可能的值

    连字符(-):定义一个范围。

    斜杠(/):表示每隔多少时间。

    逗号(,):表示或的意思

    -l:crontab命令可以列出当前用户的所有定时计划任务。

    -e:crontab命令可以创建或修改当前用户的定时计划任务

    -u:crontab可以查看指定用户的定时计划任务

    注意:只有root用户有权限查看其他用户的定时任务计划

    -r:没有确认信息完全移除当前用户的定时计划任务

    -i和-r:crontab命令将在移除定时计划任务前提示用户进行确认。

  2. at:在指定时间执行命令

    at命令用于安排一个任务在指定的时间运行。

    at [-f file] [-q queue] [option] time [date]

    -f:从文件中读取命令 然后执行

    -l:列出当前用户(非root)所有使用at命令创建的还未运行或当前正在运行的任务。如果是root用户将列出所有用户的任务。

    atq:与‘at -l’相同的功能。

    atrm:删除现有任务

  3. &控制操作符:将任务放在后台运行

    在当前shell下启动一个子进程执行命令

    command &

    script-name &

    jobs 查看后台任务

    jobs -l:显示正在后台正在运行的任务的进程号等信息

    %job-id 或 fg job-id把指定的任务放在前台执行。

    ctrl+z 挂起任务

    %1 & 或 bg

  4. nohup:运行一个对挂起免疫的命令

    使用nohup命令就可以解决这个问题,它能让你运行的命令或脚本在你退出系统后台继续运行。

    nohup command [arg]... &