ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux – 使用java启动远程进程

2019-07-22 07:50:44  阅读:427  来源: 互联网

标签:bash shell linux ppp sshpass


机器A使用sshpass连接到远程机器B,并且远程机器B不直接对root提供ssh访问权限,因此我通过用户连接到它并使用sudo,并且当他执行sudo su时我也为用户禁用了密码.当命令很简单时,例如ls -lrt / some / dir,我得到了命令的正确输出,但是当我在远程机器上启动服务器/ shell脚本时(服务器在脚本运行1分钟时没有时间),输出显示但是bash没有恢复正常(即看起来它正在做一些工作,但我知道服务器已启动/脚本已完成).

使用的命令:

sshpass -p 'password' ssh -o StrictHostKeyChecking=no user@192.168.0.3 "sudo ls /dev/ttyUSB*"

上面工作正常,我得到输出和bash返回所以我可以写更多的命令和做的东西.

sshpass -p 'password' ssh -o StrictHostKeyChecking=no user@192.168.0.3 "sudo /root/path/server &"

sshpass -p 'password' ssh -o StrictHostKeyChecking=no user@192.168.0.3 "sudo /root/path/to/script/scriptTakes1Minute param1 param2"

但是,上述方法并不像预期的那样有效.看起来它正在工作,但不是bash没有返回,所以我不能进一步编写命令.

我无法共享脚本或服务器程序,因为它是公司的代码.但是服务器代码使用UNIX数据报套接字进行通信.

/* Creating a UNIX datagram socket for Server Application */
        if ((sock = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0)
        {
                perror("server: socket");
                exit(1);
        }

编辑1:

当我尝试

sshpass -p 'password' ssh -o StrictHostKeyChecking=no user@192.168.0.3 "sudo /root/path/server >/dev/null &2>1 </dev/null &"

服务器程序正确启动,但脚本没有按预期工作,并没有返回bash,但一旦按下ENTER返回bash,我知道这意味着什么,但不知道是什么.

编辑2:

我无法将输出重定向到文件,因为我不知道该命令需要多长时间才能运行,可能需要一分钟或几分钟.

编辑3:

我找到了一些有用的东西(我猜).保留在该计算机B上的脚本在后台创建了很少的进程,因此在从机器B手动杀死所有这些后台进程之前,sshpass不会返回.只要这些程序被终止,我们就会获得该输出以及bash背部.

编辑4:

该脚本创建在后台运行的8 ppp会话.

解决方法:

只需要再使用一行代码process.waitFor();这将解决您的问题: –

 process = Runtime.getRuntime().exec(SHELL_COMMAND);
 process.waitFor();// add this line to complete execution of your shell command
 System.out.println("LLLLLLLOOOOOOOOOKKKKKKKK started process");

标签:bash,shell,linux,ppp,sshpass
来源: https://codeday.me/bug/20190722/1500475.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有