Command-Line

使用參數執行 su -s

  • January 31, 2019

我執行使用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命令和參數以不生成此錯誤?

如果您正在執行suas root,則可以使用-s指定不同的 shell(在root此處執行 as 是必要的,因為您的tomcat使用者沒有有效的 shell),並-c指定要執行的命令:

su -s /bin/sh -c "$CATALINA_HOME/bin/catalina.sh run" tomcat

您可能會發現start-stop-daemon有用;它有很多選項來指定要使用的使用者和組、如何啟動守護程序等。Debian 中使用的tomcat8initscript可能會提供有用的啟發。或者您可以考慮編寫一個 systemd 單元或任何適合您系統的 init 的東西。

引用自:https://unix.stackexchange.com/questions/289037