你好,我正在尝试将屏幕作为cronjob的一部分使用。
目前我有以下命令:
screen -fa -d -m -S mapper /home/user/cron
有没有办法使这个命令如果屏幕映射已经存在,则不执行任何操作?该映射设置为每半小时运行一次,但有时映射需要超过半小时才能完成,因此它们会重叠,互相拖慢速度,甚至有时会导致下一个映射变慢,最终导致大量映射屏幕同时运行。
感谢您的时间。
你好,我正在尝试将屏幕作为cronjob的一部分使用。
目前我有以下命令:
screen -fa -d -m -S mapper /home/user/cron
ls /var/run/screen/S-"$USER"/*.mapper >/dev/null 2>&1 || screen -S mapper ...
这将检查当前用户是否存在名为mapper的屏幕会话,仅当不存在时才会启动一个新的会话。
trap
命令,并确保如果shell脚本因可捕获的信号而退出,则删除锁定文件(您无法捕获KILL和一些进程控制信号)。screen
程序已经创建了锁定文件;您可能不需要特别做什么来创建它们 - 但需要检测它们是否存在。还要检查GNU手册中的screen
。