我有一个 Java 应用程序,我从它开始......
nohup java -cp MyServer.jar > log.txt 2> errors.txt < /dev/null &
该应用程序只是一个 Web 服务,提供一些更新 SQLite 数据库的方法。
当我启动应用程序(使用上述命令)时,它运行良好,并且我可以在日志文件中看到它正在更新数据库。
但是,当我退出 SSH 会话时,Web 服务尝试访问数据库时失败。
它返回...
java.sql.SQLException: path to 'dbrocket.db': '/home/rich/roketapp' does not exist
显然,该路径确实存在,文件也确实存在。
如果我重新连接到 Ubuntu 服务器,它就会再次开始工作(我不会重新启动应用程序),所以就好像我注销时失去了一些安全权限一样。
该文件的安全性是
-rw-r--r-- 1 rich rich 3697664 Dec 5 09:27 dbroket.db
也许我需要改变这一点,但我宁愿理解为什么这正在发生。
我对 Ubuntu/Java/Linux 等还很陌生,所以如果我遗漏了一些明显的信息,请耐心等待。
输出自df /home/rich/roketapp
Filesystem 1K-blocks Used Available Use% Mounted on
/home/rich/.Private 127147284 2561168 118084332 3% /home/rich