错误:EACCES:权限被永远拒绝

Posted

技术标签:

【中文标题】错误:EACCES:权限被永远拒绝【英文标题】:Error: EACCES: permission denied with forever 【发布时间】:2018-06-08 03:14:38 【问题描述】:

我在 Debian 服务器上的 socket.io 中有一个脚本。 我安装了 Forever 和 nodemon。

当我使用 nodemon 或永远启动我的脚本时,它运行良好。 但是,当我在 linux 服务中推送这个命令时,它失败了。

这是我的服务:

[Unit]
Description=Chat

[Service]
WorkingDirectory=/var/www/mysite/web
ExecStart=/usr/bin/forever start /var/www/mysite/web/server.js
Restart=always
RestartSec=500ms
User=www-data
Group=www-data

[Install]
WantedBy=multi-user.target

当我检查 journalctl 我有这个错误:

Error: EACCES: permission denied, open '/var/www/.forever/YEAA.log'

这里是完整的错误:

déc. 27 13:45:05 vps32913 forever[7558]: warn: --minUptime not set. Defaulting to: 1000ms
déc. 27 13:45:05 vps32913 forever[7558]: warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
déc. 27 13:45:05 vps32913 forever[7558]: info: Forever processing file: /var/www/mysite/web/server.js
déc. 27 13:45:05 vps32913 forever[7558]: fs.js:646
déc. 27 13:45:05 vps32913 forever[7558]: return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
déc. 27 13:45:05 vps32913 forever[7558]: ^
déc. 27 13:45:05 vps32913 forever[7558]: Error: EACCES: permission denied, open '/var/www/.forever/YEAA.log'
déc. 27 13:45:05 vps32913 forever[7558]: at Object.fs.openSync (fs.js:646:18)
déc. 27 13:45:05 vps32913 forever[7558]: at Object.forever.startDaemon (/usr/lib/node_modules/forever/lib/forever.js:460:14)
déc. 27 13:45:05 vps32913 forever[7558]: at /usr/lib/node_modules/forever/lib/forever/cli.js:319:15
déc. 27 13:45:05 vps32913 forever[7558]: at /usr/lib/node_modules/forever/lib/forever/cli.js:162:5
déc. 27 13:45:05 vps32913 forever[7558]: at /usr/lib/node_modules/forever/lib/forever.js:412:11
déc. 27 13:45:05 vps32913 forever[7558]: at FSReqWrap.oncomplete (fs.js:152:21) 

【问题讨论】:

【参考方案1】:

也许永远无法访问 .forever 文件夹?

你可以试试这样的 chmod 吗?

chmod 644 /var/www/.forever 

编辑

如果它不起作用,您应该以 root 用户身份启动 forever

也许是这样的?

[Service]
...
User=root
Group=root

希望对你有帮助。

【讨论】:

是的,重新加载systemctl déc后出现同样的错误。 27 14:40:13 vps32913永远[17550]:错误:EACCES:权限被拒绝,打开'/var/www/.forever/T6hZ.log' 您是否永远以 root 用户身份启动? 当我永远手动启动时(我是 root)所以它是完美的。对于永远以 root 用户身份启动,我承认我不知道该怎么做...... 好的,我已经更改了我的服务并设置了 root。没关系,但现在我有另一个问题。该服务已启动数次...... 12 月。 27 14:54:22 vps32913 systemd[1]:chat.service 延迟时间结束,计划重启。十二月27 14:54:22 vps32913 systemd[1]:chat.service 启动请求重复太快,拒绝启动。十二月27 14:54:22 vps32913 systemd[1]:开始聊天失败。十二月27 14:54:22 vps32913 systemd[1]: 单位 chat.service 进入失败状态。 是的,我认为这是因为您有 Restart=always 和 RestartSec=500ms。您可以尝试删除这两行吗?

以上是关于错误:EACCES:权限被永远拒绝的主要内容,如果未能解决你的问题,请参考以下文章

错误:EACCES:权限被拒绝

Meteor 错误:EACCES:权限被拒绝,rmdir 'build'

错误:EACCES:权限被拒绝,取消链接 '/usr/local/bin/npm

sh 未处理的拒绝错误:EACCES:权限被拒绝

NPM/Cordova 权限错误:EACCES:权限被拒绝,scandir

电子制造商:EACCES:权限被拒绝