这个服务控制nginx。 当我重新启动系统,屏幕不会启动,但如果我发出svcadm disable nginx
然后svcadm enable nginx
手动svcadm enable nginx
,它的确如此。 init脚本的其余部分在重新启动时正常工作(nginx守护进程启动等)。
触发屏幕的服务部分如下所示:
case "$1" in start) echo "Starting Nginx Logger: \c" /usr/bin/screen -S nginxLogger -d -m /opt/php-5.3.10/bin/php $loggingProg LogRetVal=$? [ $LogRetVal -eq 0 ] & echo "ok" || echo "failed" ....
日志(/var/svc/log/network-nginx:default.log)显示$ LogRetVal返回0,$ loggingProg只是指向一个PHP脚本。
如果重要,当我手动重新启动服务时,我以root身份login。 我不确定如何检查是否是权限问题(我是Solaris新手,最近从CentOS / RHEL切换过)。
最有可能的重启后,它开始得太早…可能会比联网上来。 把正确的依赖关系放到服务描述XML中。
Btw svcs -xv
打印出处于维护状态的服务及其日志文件,您可以在其中find潜在的错误。
为什么screen
? 这似乎是SMF的一些误解。