我正在使用foreman export upstart /etc/init
设置一个 tomcat 应用程序服务器,以便可以在 Ubuntu 中监控和维护可用性。
但有一些挑战,我想就以下问题提出一些建议:
1) 在sudo service tomcat start
使用kill <pid>
... 所需的端口尚未发布。克服这个问题的解决方法是什么?
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-nio-8443"]
8 java.net.BindException: Address already in use
9 at sun.nio.ch.Net.bind0(Native Method)
43 Caused by: java.net.BindException: Address already in use
44 at sun.nio.ch.Net.bind0(Native Method)
2)我initctl list | grep tomcat
用来找出pid
(在这种情况下为3518)并终止进程:
$ initctl list | grep tomcat
tomcat start/running
tomcat-web-1 start/running, process 3518
tomcat-web start/running
是否有可能杀死 tomcat-web-1 实际上是测试 Upstart 重生能力的错误方法?
3)另一个挑战是,如果我只这样做一两次,我很快就会遇到内存问题:
376 Error occurred during initialization of VM
377 Could not reserve enough space for object heap
4) 最后,默认脚本似乎只为错误的退出条件处理重生。但是机器重启不算作其中之一,那么应该如何foreman export upstart /etc/init
增强导出来处理这种情况呢?
我想知道是否有其他人之前遇到过类似的挑战和/或有解决方法?
更新#1(2013 年 3 月 4 日):
要完成 (4),我只需要编辑 appname.conf 文件的start on
语句以包含start on (... OR runlevel [2345])