Назад | Перейти на главную страницу

Crontab запустить экран

Я запустил экран с помощью сценария оболочки в crontab, когда я вошел в экран, левая сторона стала "sh-4.1 #". Хотя я запускал сценарий напрямую, он был нормально с"[данные root @ localhost]". Что произошло?

Сценарий оболочки:

#!/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.

Это из-за переменных окружения, которые не используются в 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

Это установит ваше приглашение на «привет». Просто измените его на то, что хотите.