Crontab 启动一个屏幕

Crontab 启动一个屏幕

我在crontab中用shell脚本启动了一个屏幕,当我进入屏幕时,左侧变成了“sh-4.1#“。当我直接运行脚本时,它很正常”[root@localhost 数据]“。 发生了什么?

Shell 脚本:

#!/bin/bash

cd /data
scr_name="test"

pid=`screen -ls | grep -w $scr_name`
if [ -z "$pid" ];
    then 
    screen -dmS $scr_name
fi

crontab 是:

*/1 * * * * /bin/bash -l /data/test.sh

笔记:它在CENTOS5.5中可以运行,但在CENTOS6.3中不能运行,现在我想在CENTOS6.3中运行它。

答案1

这是因为环境变量在 cron 中没有得到使用。

具体来说,在您的情况下,变量是 PS1。

在脚本中设置这个变量它就会起作用。

像这样:

#!/bin/bash

scr_name="test"

/bin/env

export PS1=hi

pid=`screen -ls | grep -w $scr_name`
if [ -z "$pid" ];
    then
    screen -dmS $scr_name
fi

这会将您的提示设置为“hi”。只需将其更改为您想要的值即可。

相关内容