我正在处理一个简单的java后台进程,该进程处理来自套接字连接的数据,然后使用MysqL连接器JDBC驱动程序build立与存储此信息的数据库的连接。 我想使用upstart作为服务使用程序,但初始化我的服务后,进程将失败,第一次上载后尝试访问JDBC驱动程序插入数据到数据库(不会在jdbc注册失败,但是这是我监视输出的最佳假设,尽pipe在我的日志中没有显示堆栈跟踪)。 如果我从程序中的catch语句中删除了出口调用,我可以看到这个进程持续地接收上传数据,但实际上没有数据存储在MysqL数据库中。
通常从控制台运行java程序时,它执行没有任何问题。 下面的upstart .conf的部分指向我可以运行的同一个程序,没有任何问题。
script echo $$ > /var/run/uploadclient.pid exec java -cp /user/server UploadProgram >> /home/user/upload.log end script
有没有人听说过这样的问题?
为Ubuntu编写启动脚本
DOCKER_OPTS在configuration文件/ etc / default / docker中不起作用
为什么node.js不能从一个暴发户脚本中捕获SIGTERM?
新贵追踪Bluepill的错误PID
当从参数化angular色通知时,只能运行一次
Node.js应用的新贵脚本
Ubuntu新贵从Play 1.3获得不正确的PID
需要帮助在Ubuntu中使用Upstart运行Python应用程序作为服务
Ubuntu的 – 打开的文件太多了?
想想我知道了…当通过暴发户运行一个Java程序时,由于某种原因隐藏了stacktrack错误。 这可以通过使用StringWriter和PrinterWriter捕获堆栈跟踪,然后使用常规的System.out.println()来打印出错误来解决。
问题结束了,即使原来的类是用jdbc连接器编译的,upstart要求它在执行期间在类路径中。
exec java -cp .:/user/jdbc.jar:/user/server UploadProgram >> /home/user/upload.log
这解决了这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。