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

Issue Starting up ColdFusion 2018 on Solaris 11.3 on non-root account

我的 Solaris 系统有 3 个用户(root、cf运行time、cfdev)

成功安装ColdFusion 2018后,coldfusion2018安装的所有者是cf运行time.

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

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

然而,这似乎并没有正常启动冷聚变,但也没有产生任何异常 error/log

查看启动脚本/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 则正常启动。

有什么想法吗?

$JAVA_EXECUTABLE 命令之前添加一个 nohup 并将输出发送到 >/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 并在后台启动进程会导致 shell 启动的所有作业在启动脚本完成后关闭(发送挂断向该终端启动的所有作业发出信号(SIGHUP))。

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