暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

自动运行 screen 任务

生有可恋 2023-03-28
729

当有很多任务需要在screen中运行时,可以将创建screen会话的过程自动化,让程序自动在screen中运行。

比如一些需要长时间运行的任务:

当系统异常关机时,这些任务运行的环境将丢失。为了持久化运行环境,可以将每个screen会话中运行的任务写成脚本,方便重复调用。

比如启动测试程序 speedtest 的任务:

    $ cd screenjob
    $ ls
    001_speedtest_rc.sh  001_speedtest.sh


    $ cat 001_speedtest.sh
    #!/bin/bash


    cd root/apps
    PWD=`pwd`
    echo "Current working dir: "$PWD
    ./speedtest_linux_64bit

    下一步是自动创建 screen 会话,并在 screen 会话中调用相应的任务:

      $ pwd
      /root/screenjob


      $ cat 001_speedtest_rc.sh
      #!/bin/bash
      RC_NAME=speedtest
      cmd="/bin/bash root/screenjob/001_speedtest.sh"
      SCREEN=/usr/bin/screen
      $SCREEN -dmS $RC_NAME
      $SCREEN -x -S $RC_NAME -p 0 -X stuff "$cmd"
      $SCREEN -x -S $RC_NAME -p 0 -X stuff "\n"


      通过调用 rc 脚本即可自动启动 screen 会话,并调用任务。如果需要开机启动可以将 rc 脚本插入到 /etc/rc.local 中。

      在 screen 中运行前台任务,可以观察日志输出,并对任务进行重启操作。相对于后台任务,screen 本身既有后台程序的功能,又可以方便地保留前台程序的优点,实时地看到任务的状态变化。

      全文完。

      如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。

      文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论