我制作了一个如下的shell脚本:
#!/bin/bash
/root/bin/mybin >> a.log
然后我使用crontab在固定时间启动它。 结果是:
我可以从linux shell手动运行脚本。
而且我确定它与用户访问问题无关,因为我将其用作“根”。
使用命令
strace -f -o /tmp/data.log ~/deploy/StartData.sh >> ~/script-log/data.log
strace
输出包含
7011 write(2, "/root/deploy/StartData.sh: line "..., 80) = 80
7011 write(2, "/root/deploy/StartData.sh: line "..., 82) = 82
7011 exit_group(2) = ?
7011 +++ exited with 2 +++
这些是/tmp/mybin.trace
的最后一条消息,除此之外,没有错误消息
这真的让我感到困扰,任何建议都很高兴。
答案 0 :(得分:0)
strace
的输出显示在shell脚本/root/deploy/StartData.sh
中发生错误,并且shell以退出代码2退出。
7011 write(2, "/root/deploy/StartData.sh: line "..., 80) = 80
→错误消息,带有文件名和(可能)行号
7011 exit_group(2) = ?
→程序退出并显示代码2(可能是错误指示)
根据reference of shell exit codes,这可能意味着
滥用外壳内置函数(根据Bash文档)
从cron运行时,您的程序/脚本似乎有问题。可能的原因可能是:
要获得更好的答案,请遵循注释中的提示。