SQLeT3 模块在从 Ubuntu Upstart 启动时无法打开数据库



在 Ubuntu 服务器 14.04 中工作

我在/etc/init 中有一个新贵 .conf 文件,用于盯着我的节点服务器。我永远使用。这是我的脚本的样子

start on filesystem or runlevel [2345]
expect fork
setuid myUserId
env HOME=/home/myUserId/
env NODE_BIN_DIR=/usr/bin
env NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
script
PATH=$NODE_BIN_DIR:$NODE_PATH:$PATH
echo $PATH
exec forever start -o /home/myUserId/nodeServ/lServer/logs/out.log /home/myUserId/nodeServ/lServer/server.js 1337
end script

但是我不断收到此错误

Error: SQLITE_CANTOPEN: unable to open database file
error: Forever detected script exited with code: 8

如果我从命令行完全按照 conf 文件中的方式运行脚本,它可以正常工作。没问题。所以我认为这是一个权限问题。我已经在数据库目录和数据库上设置了读写执行权限,但仍然无法从文件中读取。

我尝试了很多不同的东西,我不知道为什么这是快乐的

更新:此问题似乎不是与新贵隔离的。我也尝试永远盯着 shell 脚本,但遇到了同样的错误。

通过解决方法解决了我的问题。不永久使用,直接从新贵文件启动节点(允许重生)。没问题。这似乎是sqlite3问题或永久问题。

将此

命令sudo chown www-data. .在数据库文件目录中编写。

其他解决方案是检查文件是否存在前任:

var fs = require("fs");
var exists = fs.existsSync(dbfilepath);

最新更新