Command-Line
使用參數執行 su -s
我執行使用
su -s
命令來執行命令以啟動程序。因為我不希望 root 使用者擁有該程序。我嘗試通過發出命令來做到這一點
su -s "$CATALINA_HOME/bin/catalina.sh run" tomcat
返回
su: /opt/apache-tomcat/bin/catalina.sh run: No such file or directory
如何執行
su -s
命令和參數以不生成此錯誤?
如果您正在執行
su
asroot
,則可以使用-s
指定不同的 shell(在root
此處執行 as 是必要的,因為您的tomcat
使用者沒有有效的 shell),並-c
指定要執行的命令:su -s /bin/sh -c "$CATALINA_HOME/bin/catalina.sh run" tomcat
您可能會發現
start-stop-daemon
有用;它有很多選項來指定要使用的使用者和組、如何啟動守護程序等。Debian 中使用的tomcat8
initscript可能會提供有用的啟發。或者您可以考慮編寫一個 systemd 單元或任何適合您系統的 init 的東西。