【发布时间】:2019-06-26 11:13:43
【问题描述】:
我有两个脚本,一个运行 Tomcat 服务器的应用程序关闭,另一个在部署时调用它。所以基本上在 Jenkins 构建了我的应用程序并将可部署的工件移动到服务器(linux)之后。一旦完成,Jenkins 就会启动一个脚本来在 Tomcat 上部署应用程序。该部署脚本调用另一个脚本来关闭tomcat 上当前运行的应用程序。我遇到的问题是它无法识别 Tomcat 上正在运行的任何东西。所以我最终在服务器上同时运行了两个应用程序实例......并且我得到了内存不足的异常。所以这是奇怪的部分。如果我尝试以sudo /path/to/my/script stop 运行脚本,它无法识别在tomcat 上运行的任何应用程序,但如果我cd 到cd /path/to/my 之类的目录,然后运行sudo ./script stop,它就可以工作。有谁知道问题是什么?我认为这与权限无关,我使用同一个用户来做所有事情,构建和部署。所有文件都归同一个用户所有,我在命令前使用sudo。提前感谢您的帮助。
【问题讨论】:
-
为什么是
sudo?script中有什么内容? -
我不需要脚本内部的 sudo。当我在 shell 中手动键入时,我会使用它。因此,该应用程序以与我的用户不同的用户身份运行。关闭脚本是由 hybris 构建的自动生成脚本。同样,我不明白为什么只有当我导航到脚本所在的目录而不是从目录外部时这才有效。