sudo nohup python2 myFoo.py & disown
为什么/我的目标:
我有一个由pi组成的小型网状网络,每天大部分时间都在运行脚本。我想取消停机时间,但是代码有时会在连续循环3-4天后停止工作,(有时长达一周,代码才会出现错误并停止)。
每个节点上运行的脚本用“最后签入”字段更新mySQL数据库。
我希望用Java编写一个小型后台程序,它将在我的服务器上无限期运行,时不时地检查每个站点的“最后签入”,如果它注意到一个节点宕机,远程ssh进入该节点,然后sudo nohup python2myfoo.py&disown
,等待大约60-100秒,然后sudo nohup python2myfoot/disown
你选错了例子。“shell”通道用于实现交互式shell会话,而不是自动执行命令。
使用“exec”通道,请参见exec.java
示例。
Channel channel=session.openChannel("exec");
((ChannelExec)channel).setCommand(command);
channel.connect();
...
有关完整代码,请参见如何读取JSch命令输出?-它展示了如何同时正确读取标准输出和错误输出,允许命令完成并收集所有输出,包括错误。
我有一个带有两个按钮的swing应用程序,用于运行和停止执行JSch命令。所以我有下一个方法,当我们点击开始按钮时调用: 正如你上面看到的,我们有is取消变量,它是布尔变量,当点击停止按钮时,我们将其设置为false。所以我的问题是当用户点击停止按钮和通道与会话成为断开,zgrep表达式继续工作在服务器上。我认为channel.disconnect()应该停止我在服务器上运行的所有命令,有人能建议
我试图在unix中使用JSCHSSH类(com.jcraft.jsch)执行一些工具。我的工具有一个选择菜单。我需要转到工具所在的文件夹,执行它并选择请求的选项。在每个命令之后,(cd,execute,…)我希望检查输出并检查状态代码(0/1)。我有下面的代码按预期执行它,但在这段代码中,我找不到一种方法来检查每个命令后的输出。 我无法找到一种方法,但我怎么能分开的命令,并打印他们一个接一个(在同
我正在尝试编写一个Java代码,它可以ssh到Unix服务器并重置用户密码。所以我尝试实现SO中的一些代码。 如。 通过JavaJSch通过ssh向远程服务器发送命令 从字符串中获取命令(密码)并设置为InputStream到Java(JSCH)中的Unix服务器 使用JSch,我按照此链接获取重置用户密码的正确命令。 当我试着运行这段代码时,它似乎没有重置用户的密码。因此,我尝试直接从Unix的
问题内容: 使用JSch“ exec”通道,我连接到远程服务器并执行命令。我不能执行的是存储在中的命令列表。我使用for循环将每个元素传递给,但是出于某种奇怪的原因,只有最后一条命令被执行。 完整代码 问题答案: 您不能多次拨打。“ exec”通道只能运行一个“命令”。 但是在大多数系统/外壳上,“命令”实际上可以包括多个命令。 语法将取决于您的系统/ shell。分号通常工作: 一些服务器/外壳
我能够使用Jsch连接shell通道,然后我必须执行后续命令,我已经阅读了下面的帖子通过Jsch Shell执行多个命令 我已经试过了,如下所示 但是cmd1是UNIX服务器登录脚本,所以即使我用putty给出下面的命令 我无法在一个实例中执行所有三个,只有cmd1正在执行,因此也不能使用Jsch。 因为cmd1是用于登录的,所以通常我会在puty中执行cmd1,然后一旦登录到unix服务器,我就