在非root帐户上在Solaris 11.3上启动ColdFusion 2018的问题

时间:2019-02-28 21:31:31

标签: bash coldfusion solaris coldfusion-2018

我有一个具有3个用户(root,cfruntime,cfdev)的Solaris系统

在成功安装ColdFusion 2018之后,Coldfusion2018安装的所有者是cfruntime。

作为cfdev,我尝试使用以下命令启动ColdFusion

  

sudo / disktwo / coldfusion2018 / cfusion / bin / coldfusion start

这似乎不能正常启动冷融合,但是也不会产生任何异常错误/日志

查看启动脚本/ disktwo / coldfusion2018 / cfusion / bin / coldfusion。以下各行实际上启动了ColdFusion

CFSTART='su $RUNTIME_USER -c "LD_LIBRARY_PATH=$LD_LIBRARY_PATH; 
        export LD_LIBRARY_PATH; 
        cd $CF_DIR/bin; 
        $JAVA_EXECUTABLE -classpath $CLASSPATH $JVM_ARGS
        com.adobe.coldfusion.bootstrap.Bootstrap -start &"'

eval $CFSTART > /dev/null

我所做的一个有趣的观察是,如果我在&的末尾删除了CFSTART,ColdFusion将正常启动(尽管我需要将其放在后台crtl-z , bg中)

如果以(cfdev / cfruntime)身份启动,则退出启动脚本后,ColdFusion进程似乎并不持久,但是如果该脚本以root身份运行,则ColdFusion进程可以正常启动。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

nohup命令之前添加$JAVA_EXECUTABLE并将输出发送到>/dev/null 2>&1对我来说很有用

CFSTART='su $RUNTIME_USER -c "LD_LIBRARY_PATH=$LD_LIBRARY_PATH; 
        export LD_LIBRARY_PATH; 
        cd $CF_DIR/bin; 
        nohup $JAVA_EXECUTABLE -classpath $CLASSPATH $JVM_ARGS
        com.adobe.coldfusion.bootstrap.Bootstrap -start > /dev/null 2>&1 &"'

我发现,似乎切换到运行时用户su $RUNTIME_USER并在后台启动进程会导致启动脚本完成后,外壳程序启动的所有作业都关闭(向所有用户发送挂断信号(SIGHUP)由该终端启动的作业)。

nohup阻止$JAVA_EXECUTABLE在收到挂断信号(SIGHUP)时关闭