【问题标题】:Not able to run psservice.exe and plink.exe from servlet deployed in Tomcat 6.0 using runtime exec and processbuilder无法使用运行时 exec 和 processbuilder 从部署在 Tomcat 6.0 中的 servlet 运行 psservice.exe 和 plink.exe
【发布时间】:2012-09-03 10:55:51
【问题描述】:

我正在尝试使用运行时 exec 从 servlet 运行 psservice.exe 和 plink.exe。它将用于在运行 windows 和 unix aix 的远程计算机上启动或停止服务。

我已经设置了系统变量,以便能够从命令提示符运行它们。这些命令在命令提示符和 java 程序中完美运行

我在远程 Windows 机器的 Servlet 中使用以下代码

    Runtime.getRuntime().exec(serverPropLoader.getServerProperties("psservice \\\\172.xx.xx.xx -u username -p password stop MySQL")); 

我在 Servlets 中为远程 unix aix 5.3 机器使用以下代码

    Runtime.getRuntime().exec(serverPropLoader.getServerProperties("PLINK.exe -ssh -pw "password" username@172.xx.xx.xx /home/mysql/stopservice.sh"));

以下是我的观察:

如果我使用 Tomcat6 从 Eclipse(版本 3.4.2)运行上述语句,它运行得非常好,但是如果将我的 Web 应用程序导出为 WAR 并手动将其部署到 Tomcat6 中,它不会运行。 (我已经尝试在我的和其他系统中部署它)

我尝试将这些命令放入批处理文件并从 servlet 调用它,但没有成功。从批处理文件“net”和“sc”命令正在运行,但我无法运行 pservice 和 plink 命令。 “sc”命令也仅适用于本地进程。

执行 servlet 后,我​​可以在 Windows 任务管理器中看到 psservice.exe 和 plink.exe,但本地和远程系统上所需的服务没有启动/停止

【问题讨论】:

  • 我找到了解决上述问题的方法:现在我正在创建一个新文件,其名称为要启动\停止的服务。我编写了另一个 java 程序,它将读取文件名并启动或停止所需的服务。
  • 我觉得这个问题与 tomcat 中的 catalina.policy 或 windows 用户权限有关,因为我能够从普通 java 程序运行 Runtime.getRuntime().exec() 但不能从部署的 servlet在tomcat中。另一个奇怪的事情是我能够从 eclipse 运行 servlet。

标签: java servlets tomcat6 runtime.exec plink


【解决方案1】:

这里的问题是,您需要为 tomcat 用户添加管理员权限。 因为这个 Apache Tomcat Monitor 程序需要与系统服务交互的权限,所以它不能作为标准用户执行。

做以下事情,你会没事的

在 Windows 资源管理器中找到 tomcat7w.exe 程序(默认目录为 C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin)。

右键单击此文件的名称并选择属性上下文菜单项。

将显示 tomcat7w 属性对话框。 选择“兼容性”选项卡,然后单击对话框底部的“显示所有用户的设置”按钮或“更改所有用户的设置”按钮。

将显示一个新的 tomcat7w.exe 属性对话框,其中包含一个名为“所有用户的兼容性”的选项卡。 在此对话框底部的权限级别组框中,选择以管理员身份运行此程序。

当从标准用户帐户运行时,Apache Tomcat Monitor 可执行文件现在将以所需的权限执行。

更多信息请参考 https://supportcontent.ca.com/cadocs/0/CA%20Automation%20Point%20Base%2011%204-ENU/Bookshelf_Files/HTML/AP--RelNotes/index.htm?toc.htm?2009998.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 2011-12-07
    相关资源
    最近更新 更多