当使用su执行一个节点程序时,权限被拒绝

这里是我的节点程序

var fs = require('fs'); fs.writeFileSync('./data.txt', 'test'); 

它在/ home / test /中,testing目录的权限是rwxrwxrwx。 当我运行与tomcat帐户节点test.js,data.txt可以创build。

但是当我运行一个服务来执行su tomcat -c'node /home/test/test.js'时,无法创builddata.txt,并且在stdout中存在权限被拒绝的提示。

 sudo service test 

这里是我在/etc/init.d中的服务

 su tomcat -c 'node /home/test/test.js' 

谁能告诉我为什么

这可能是几件事情。 例如,当从init.d运行时,当前目录不是/ home / test。

我build议将stderr和stdout的输出连接到一个日志文件到允许写入的特定(而不是相对)区域(例如/ var / log)。