使用 Solaris 11 通过 svcadm 启动屏幕

使用 Solaris 11 通过 svcadm 启动屏幕

当我尝试通过 Solaris 11 服务启动分离屏幕时遇到问题。

此服务控制 nginx。当我重新启动系统时,屏幕不会启动,但如果我手动发出svcadm disable nginxsvcadm 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 身份登录。我不确定如何检查这是否是权限问题(我是 Solaris 新手,最近从 CentOS/RHEL 切换过来)。

答案1

最有可能的是,重启后启动得太早了……可能比网络启动还早。将适当的依赖项添加到服务描述 XML 中。

顺便说一下,svcs -xv打印出处于维护状态的服务及其日志文件,您可以在其中找到潜在的错误。

原因又是什么呢screen?这似乎是对 SMF 的一些误解。

相关内容