Javascript 无法从cron执行中获取噩梦的结果
我一直在用梦魇和cron开发一些自动化流程。噩梦运行后,它获取结果的值并将其附加到本地计算机中的文件中(未检测到网络问题) 当我使用Javascript 无法从cron执行中获取噩梦的结果,javascript,node.js,cron,fs,nightmare,Javascript,Node.js,Cron,Fs,Nightmare,我一直在用梦魇和cron开发一些自动化流程。噩梦运行后,它获取结果的值并将其附加到本地计算机中的文件中(未检测到网络问题) 当我使用node/home/user/Documents/dreammareform.js运行这个程序时,它运行得非常好,并且可以写入文件中。但是,当从cron执行时,它不会向文件追加任何内容 我已将配置添加到crontab,如下所示: crontab -e # It will be executed everyday at 13:00 0 13 * * * node /
node/home/user/Documents/dreammareform.js
运行这个程序时,它运行得非常好,并且可以写入文件中。但是,当从cron执行时,它不会向文件追加任何内容
我已将配置添加到crontab,如下所示:
crontab -e
# It will be executed everyday at 13:00
0 13 * * * node /home/user/Documents/nightmareForm.js
如果我做了grep nightmareForm.js/var/log/syslog-C 10
我可以看到它已经被执行了:
4月24日13:00:00 PC CRON[1223]:(root)CMD(node/home/user/Documents/dreammareform.js)
继续调查,该文件具有以下权限(Ubuntu 18.10):-rwxr-xr-x
,因此它应该是可执行的,并且创建的文件具有以下权限:-rw-rw-
更新:@ponury kostek的想法之后,我验证了脚本可以在文件中写入,但它从未到达then()或catch()块
更新2:我试图从crontab捕获日志,但它没有显示任何错误:013***/usr/local/bin/node/home/user/Documents/nappareform.js>/home/user/Documents/nappareform.log 2>&1
你知道为什么crontab中的脚本无法到达then()或catch()块吗?
谢谢我也有同样的问题 我的工作是使用xvfb run启动节点进程
xvfb-run node myscript.js
实际上,我制作的shellscript(go.sh)只包含3行:
#!/bin/bash
cd /home/me/nodestuff/spkfetch
xvfb-run node fetch_umsaetze.js
并将其添加到crontab中:
* * * * * cd /home/norbert/nodestuff/spkfetch && sh go.sh >> /home/norbert/nodestuff/spkfetch/log/log.txt 2>&1
我从未尝试将xvfb run调用直接放入crontab,但我认为可能是脚本不允许启动X进程(窗口)之类的问题。也许值得尝试将其直接放入cron命令中
以下是引导我找到此解决方案的页面:当您执行
sudo crontab-e
时,您正在为root
编辑cron
(process.env['HOME']===“/root/”
)用户而不是您的用户。只需在不使用sudo的情况下使用crontab-e
@ponury kostek感谢您的回答,但是,无论使用sudo还是不使用sudo,这都是相同的行为。使用以下信息登录(事实上,我们可以看到root没有在这一个中运行):Apr 24 14:39:01 PC CRON[25564]:(user)CMD(node/home/user/Documents/nappareform.js)
Create file withconst fs=require(“fs”);appendFileSync(“/tmp/crone_test.txt”,JSON.stringify(process.env))
并从cron运行它,然后检查HOME
下设置的内容。如果您完全正确,代码的执行可以创建详细信息并将其附加到文件中。问题在于梦魇脚本的执行。它从不进入then()或catch()块。。。我会更新问题的描述,再次感谢!用try/catch
block和log结果将所有内容包装到某个地方,我认为dream
不适用于您的脚本实际上不需要添加go.sh文件:)我设法在crontab上直接运行xvfb run
* * * * * cd /home/norbert/nodestuff/spkfetch && sh go.sh >> /home/norbert/nodestuff/spkfetch/log/log.txt 2>&1