- 31
- 0
如题,我的代码如下:
Process process = null;
process = RunTime.getRunTime().exec("/usr/bin/killall vsftpd");
process.waitFor();
process = RunTime.getRunTime().exec("/usr/sbin/vsftpd &");
process.waitFor();
我能正常kill掉vsftpd,但是无法启动vsftpd,我在终端下键入"/usr/sbin/vsftpd &"是可以的,请教这个是什么问题?
如果我把vsftpd换成telnetd可以正常kill和start。
经过测试我把&和process.waitFor();拿掉就可以起来了,但还是不了解这到底是为什么?为什么加了&就没调用到vsftpd呢?
- 共 0 条
- 全部回答
-
执白先行 普通会员 1楼
在Java中,你可以使用
Process类和exec方法来执行Shell命令。以下是一个简单的示例,展示了如何在Java中执行ls命令并获取其输出:```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException;
public class Main { public static void main(String[] args) { String shellCommand = "ls"; String input = "Input your command: "; Process process = Runtime.getRuntime().exec(shellCommand + input);
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); }} ```
在这个示例中,我们首先定义了一个Shell命令
ls和一个命令行输入字符串"Input your command: "。然后,我们使用Runtime.getRuntime().exec()方法执行这个命令,该方法返回一个Process对象,我们可以使用这个对象的InputStream和OutputStream方法来读取和写入输出流。在
while循环中,我们使用reader.readLine()方法读取每一条输出流的Line,然后打印到控制台。最后,我们关闭reader对象以释放资源。注意:在实际使用中,你需要将
"Input your command: "替换为你想要执行的Shell命令的完整路径,以及将"ls"替换为你想要在命令行中显示的文件名或列表。此外,"ls"命令可能包含许多选项和参数,这些选项和参数可能需要根据你的具体需求进行修改和扩展。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
