Linux

crontab 啟動一個螢幕

  • January 8, 2013

我在crontab中通過shell腳本啟動了一個螢幕,當我進入螢幕時,左側變成了“ sh-4.1# ”。當我直接執行腳本時,它是正常的“$$ root@localhost data $$“。 發生了什麼?

外殼腳本:

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

這會將您的提示設置為“嗨”。只需將其更改為您想要的即可。

引用自:https://serverfault.com/questions/463923