Linux下正常執(zhí)行的shell腳本涨薪,但在crontab下某個(gè)命令總是失敗

Linux下正常執(zhí)行的shell腳本骑素,但在crontab下某個(gè)命令總是失敗。

對(duì)刚夺,就是這個(gè)問題困擾我好久献丑。自己嘗試各種打印,在這個(gè)命令之前和之后都加了打印侠姑,這個(gè)命令一執(zhí)行就像空洞一樣创橄,一直沒有找到答案。問了幾個(gè)大牛也沒有得到答案莽红。

今天無意間的妥畏,搜到這篇文章Use crontab to invoke nohup in script,答案并不明顯安吁,也有可能自己靈光一現(xiàn)醉蚁。試出來的方法,原來是如此的簡(jiǎn)單鬼店。以該篇文章中舉例說明网棍。

#!/bin/bash

BASE_PATH=~/scripts

LOG_PATH=${BASE_PATH}/keep_alive.log


write_to_log () {

? ? date >> ${LOG_PATH}

? ? echo ${1} >> ${LOG_PATH}

? ? echo "--------------" >> ${LOG_PATH}

}


pid=$(pgrep long_script)

if [ -z "${pid}" ]; then

? ? write_to_log "long_script is no runnig, starting..."

? ? nohup ${BASE_PATH}/long_script.py &

fi

crontab 定時(shí)任務(wù)

*/30 * * * * /home/scripts/keep_alive.sh


When I run the script manually (in bash,? ./keep-alive.sh) all works well and the long? script starts.

From crontab, the script starts and exits immediately (no issue with the paths/expression), and I see a log written, but the long? script stops. So my conclusion is that? nohup doesn't work the same for crontab? as in bash.

看問題描述 大致遇到了和我一樣的問題。

Can you try seeing the path for nohup from which nohup and use the path directly in? crontab? It is possible that cron might not? know PATH thereby not know where to find nohup 妇智。大致意思是nohup這個(gè)命令有可能在執(zhí)行時(shí)找不到路徑滥玷。

There is no need for nohup when using crontab. Unless your systemd is configured to kill all your processes when you log out there is no interaction between your shell exiting and crontab running processes (or otherwise), and nohup will have no useful effect on that.在使用crontab時(shí)沒必要使用nohup,除非登錄退出后在shell和crontab進(jìn)程間沒有了交互俘陷,systemd 1號(hào)進(jìn)程將殺死所有進(jìn)程罗捎。

Typically scripts don't run under cron because you've forgotten to set up the environment ($PATH, etc.).

最后這句話,一定可以點(diǎn)醒夢(mèng)中人拉盾。一般腳本在crontab中不能執(zhí)行的原因是忘記設(shè)置環(huán)境變量桨菜,比如路徑不對(duì)。

相同的案例ping command excuted in crontab but no output

@reboot ping 1.1.1.1>/home/test.log

After rebooting, the file "test.log" was? generated, however it's only an empty file.? and grep CRON /var/log/syslog shows that the ping command was executed. any one know what the problem is?

I tried some of the solutions that I googled, such as changing ping to /bin/ping or? setting the HOME environment variable, however still not working.

查看crontab官網(wǎng)介紹,crontab默認(rèn)路徑是HOME倒得,如果其它盤符的命令要帶全泻红。

https://www.adminschoice.com/crontab-quick-reference

cron invokes the command from the user’s HOME directory with the shell(/usr/bin/sh).cron supplies a default environment for? every shell, defining:

HOME=user’s-home-directory

LOGNAME=user’s-login-id

PATH=/usr/bin:/usr/sbin:.

SHELL=/usr/bin/sh

Users who desire to have their .profile? executed must explicitly do so in the? crontab entry or in a script called by the? entry.

參考

Use crontab to invoke nohup in script

ping command excuted in crontab but no output

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市霞掺,隨后出現(xiàn)的幾起案子谊路,更是在濱河造成了極大的恐慌,老刑警劉巖菩彬,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缠劝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡骗灶,警方通過查閱死者的電腦和手機(jī)惨恭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耙旦,“玉大人脱羡,你說我怎么就攤上這事∶舛迹” “怎么了锉罐?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)绕娘。 經(jīng)常有香客問我脓规,道長(zhǎng),這世上最難降的妖魔是什么业舍? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任抖拦,我火速辦了婚禮,結(jié)果婚禮上舷暮,老公的妹妹穿的比我還像新娘态罪。我一直安慰自己,他們只是感情好下面,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布复颈。 她就那樣靜靜地躺著,像睡著了一般沥割。 火紅的嫁衣襯著肌膚如雪耗啦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天机杜,我揣著相機(jī)與錄音帜讲,去河邊找鬼。 笑死椒拗,一個(gè)胖子當(dāng)著我的面吹牛似将,可吹牛的內(nèi)容都是我干的获黔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼在验,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼玷氏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起腋舌,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤盏触,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后块饺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赞辩,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年刨沦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诗宣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膘怕。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡想诅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岛心,到底是詐尸還是另有隱情来破,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布忘古,位于F島的核電站徘禁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏髓堪。R本人自食惡果不足惜送朱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望干旁。 院中可真熱鬧驶沼,春花似錦、人聲如沸争群。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽换薄。三九已至玉雾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間轻要,已是汗流浹背复旬。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冲泥,地道東北人驹碍。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓失都,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親幸冻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子粹庞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容