我使用 webmin 来管理我的专用服务器(Centos 7 64 位),并从那里创建 cron 作业,我以 root 身份执行一个 .sh 脚本,其中包含:
#!/bin/bash
screen -dmS aud
screen -S aud -X stuff "node /home/AuditTrail-Web/app.js
"`echo -ne '\015'`
Cron 作业在启动时以及当我使用以下命令加入该屏幕时执行该脚本:
screen -r aud
我得到类似的东西(也许命名提示?):
sh-4.2#
这不允许我有时执行一些命令,例如定影器还有其他一些像节点 /home/AuditTrail-Web/app.js
但如果我手动创建屏幕,我会得到:
[root@Martin ~]#
这让我能够执行一切。
有什么问题吗sh-4.2#为什么它以这种形式存在?
感谢
答案1
您正在 .bashrc 或 .bash_profile 中定义您所依赖的内容,特别是对于节点内容。
Cron 不会获取/尊重 .bashrc 或 .bash_profile,因此当您启动屏幕时这些内容不会被设置。
至少这是我的第一个猜测。