我正在尝试编写一个简单的应用程序,它接受命令行争论(将是一个Powershell ps1文件),然后运行它.所以我已经开发了许多不同的方法,似乎遇到了问题.如果我尝试从java中调用powershell,则启动windows进程并通过进程资源管理器可见,但是PowerShell永远不会返回,它会以某种形式挂起.我使用的命令是:
String command = "powershell -noprofile -noninteractive \"&C:\\new\\tst.ps1\"";
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令执行该命令:
Runtime systemRuntime = Runtime.getRuntime();
Process proc = systemRuntime.exec(command);
Run Code Online (Sandbox Code Playgroud)
目前我正在努力将位置编码为ps1文件,因为我试图将此作为一个问题进行排除.使用进程资源管理器,我可以看到挂起的powershell进程和传递给它的命令是:
powershell -noprofile -noninteractive "&C:\new\tst.ps1"
Run Code Online (Sandbox Code Playgroud)
复制到cmd窗口时,可以启动tst.ps1文件.在这个例子中,文件本身非常简单,我认为我可以将其排除在原因之外,因为我试图启动其他ps1文件可以看到相同的行为.
为了进一步增加混乱,如果我使用上面发布的java代码并传入powershell命令而不是文件名,那么它就会成功运行.
我已经浏览过网络,看到很多人遇到同样的问题,但似乎没有人在那里发布解决方案,我希望它对我来说是一个简单的疏忽,可以轻松修复.
任何提示/提示表示赞赏:D
艾伦
我希望这里有人可以帮助解决我在网络服务器上遇到的问题.目前,服务器托管我们为帮助台购买的Web应用程序.每当有人导航到该页面时,每隔8小时就会出现以下错误:
[Warning]: PDO::__construct(): MySQL server has gone away (Database/class.SWIFT_Database.php:334)
Run Code Online (Sandbox Code Playgroud)
我已经尝试将wait_timeout设置为/etc/my.cnf文件中的最大值,即;
wait_timeout=31536000
Run Code Online (Sandbox Code Playgroud)
同样从mysql我将全局wait_timeout设置为此值并将session wait_time设置为相同.
我注意到一些奇怪的行为,当你重新启动mysql服务时,等待超时重置为28800默认值,尽管它在my.cnf中设置.我找不到mysql的任何其他配置文件,但很高兴看到有人能指出我的方向.
今天早上当我登录服务器并运行以下命令时,会话wait_timeout值已恢复!
mysql> select @@global.wait_timeout, @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 31536000 | 28800 |
+-----------------------+------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
我看到这对很多人来说都是一个问题,在mysql上运行各种各样的webapps,但似乎没有人有修复.网上有很多建议指向wait_timeout,但它似乎没有改变我所看到的错误.我已经尝试了关于这个问题的mysql手册的修复,但仍然没有运气(链接:http://dev.mysql.com/doc/refman/5.0/en/gone-away.html)
任何建议将不胜感激.服务器详情和产品版本如下:
服务器:OpenSuse 11.4 MySql版本:5.1.53
提前谢谢了!