gpt4 book ai didi

java - 如何从 Java 卸载 Linux 文件夹

转载 作者:太空狗 更新时间:2023-10-29 11:10:31 25 4
gpt4 key购买 nike

我试过:

final ProcessBuilder pb = new ProcessBuilder("umount", "foldername");
final Process p = pb.start();

throw

umount: /home/user/foldername is not in the fstab (and you are not root)

我试过了

final ProcessBuilder pb = new ProcessBuilder("sudo","umount", "foldername");
final Process p = pb.start();

throw

sudo: sorry, you must have a tty to run sudo

我获得了 root 密码,但无法将其提供给 ProcessBuilder。此外,我无法编辑 fstab(或任何需要编辑的内容),因为它是从保存的操作系统镜像在远程服务器上启动的远程虚拟机。

我只想以 root 身份运行命令。

最佳答案

你有几个选择:

  1. 使 sudo 可以使用控制终端,以便用户可以在那里键入密码。

    pb = new ProcessBuilder("sh", "-c", "sudo umount foldername </dev/tty");
    Process p = pb.start();
    p.waitFor();
  2. 使用 gksudo 而不是 sudo 执行程序。使用 GTK+ 的系统通常带有 gksu 包作为 susudo 的图形界面。

    pb = new ProcessBuilder("gksudo","umount", "foldername");
  3. sudo 打开一个终端模拟器窗口:

    pb = new ProcessBuilder("xterm","-e","sudo","umount","foldername");

关于java - 如何从 Java 卸载 Linux 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10010852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com