我正在尝试将自定义服务添加到 SMF 的配置中,这似乎是成功的,因为服务启动并且有一个日志文件,但问题就在于此;该服务在启动时将一些日志消息打印到标准错误。似乎 SMF 看到了这些消息,并认为它们是错误的,因此重新启动服务,在多次尝试后放弃并关闭服务。
这是日志输出的一部分:
[ Mar 30 14:59:54 Enabled. ]
[ Mar 30 14:59:54 Executing start method ("java server.CustomServer"). ]
Starting server...
[ Mar 30 15:00:04 Method or service exit timed out. Killing contract 107. ]
直接在命令行上运行服务器很好,AFACS 在启动过程中没有遇到任何错误,除了输出。
使用 SMF 管理此服务的最佳方式是什么?日志记录是诊断问题所必需的,并且禁用会出现问题。是否可以将此服务配置为仅在服务存在时才重新启动?
在检查svc.startd 手册页时,我没有看到 stderr 日志记录是失败的原因。检查手册页的SERVICE FAILURE部分以帮助诊断。
根据您添加的消息,看起来 start 方法正在超时。服务的启动脚本是否将该程序(“java server.CustomServer”)置于后台以便退出?
它失败了,因为您的 java 程序没有在后台启动。'smf(5)' 期望 start 方法返回,因为你的方法没有返回,所以它会超时。
您需要更新脚本才能使用