Solaris 9 4/04 版本說明

允許非超級使用者擁有超級使用者存取權時,Application Server 會以超級使用者的身份啟動所有實例 (4780076)

將 Sun ONE Application Server 作為 Solaris 安裝的一部分來安裝時,會有數個問題與 Application Server 啟動相關:

在安裝 Sun ONE Application Server 時,已安裝 /etc/init.d/appserv 程序檔以及指向 /etc/rc*.d/ 目錄中的 S84appserv 程序檔與 K05appserv 程序檔的符號連結。 這些程序檔會導致所有應用程式伺服器實例與管理伺服器實例 (作為應用程式伺服器安裝的一部分定義的) 在 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 程序檔。 然而,通常會在實例配置中設定以使用者身份運行, 以迫使實例在由超級使用者進行初始啟動後以特定使用者的身份來運行。

解決方法:根據您的環境,執行以下解決方法之一:

啟動注意事項:當修改 Solaris 軟體啟動程序檔以自動啟動特定應用程式伺服器管理網域或特定應用程式伺服器實例時,請考量以下內容:

如需有關 startupshutdown 指令 (可透過 asadmin 指令行介面取得) 的更多資訊,請參閱位於 http://docs.sun.com/db/prod/s1.asse 的「Sun ONE Application Server 7 管理員指南」。