Solaris 9 12/02 发行说明

当根允许非根用户进行根存取时,Application Server 会启动所有实例 (4780076)

Sun ONE Application Server 作为 Solaris 的一部分进行安装时,Application Server 启动时会出现多个问题:

在安装 Sun ONE Application Server 的过程中,会安装 /etc/init.d/appserv 脚本以及 /etc/rc*.d/ 目录中 S84appservK05appserv 脚本的符号链接。这些脚本导致所有应用服务器实例和管理服务器实例(定义为应用程序服务器安装的一部分)随着 Solaris 系统的启动和停机而自动启动和停止。

/etc/init.d/appserv 脚本包含以下代码段:

case "$1" in
'start')
    /usr/sbin/asadmin start-appserv
    ;;
'stop')
    /usr/sbin/asadmin stop-appserv
    ;;

执行 asadmin start-appserv 命令导致管理服务器实例和(所有管理域中定义的)所有应用程序服务器实例在 Solaris 系统启动过程中启动。由于系统启动和停机脚本是作为根执行的,所以每个应用程序服务器和管理服务器实例的启动脚本也作为根执行。实例级启动脚本的名称为 startserv,位于 instance-dir/bin/startserv 中。因为非根用户也可以拥有实例,所以非根用户可以修改 startserv 脚本,作为根用户执行命令。

如果实例使用具有特权的网络端口,则该实例的 startserv 脚本必须作为根执行。但是,在根用户最初启动实例后,实例的配置中通常会设置 run as user,强制使实例以指定的用户运行。

解决方法:根据您的环境,执行以下解决方法之一。

启动注意事项:要自动启动特定的应用程序服务器管理域或特定的应用程序服务器实例,在修改 Solaris 操作环境启动脚本时,请注意以下事项。

有关通过 asadmin 命令行界面使用 startupshutdown 命令的详细信息,请参见《Sun ONE Application Server 7 Administrator's Guide》。