gpt4 book ai didi

linux - 从 bash 打开多个 gnome 终端并执行 sudo 服务

转载 作者:行者123 更新时间:2023-12-04 19:25:44 35 4
gpt4 key购买 nike

对于我在 Ubuntu 操作系统上的测量,我需要打开总共 8 个终端并运行需要 sudo 的服务/命令。所以想法是在 bash 脚本中执行此操作。
我想要的是:
调用“sudo ./init.sh”,输入 sudo 密码,然后所有 8 个终端应该并行打开并执行服务/命令,而无需任何进一步的 sudo 密码请求。
我试过的:(2个终端的例子)

user:~/myFolder$ sudo ./init.sh

#!/bin/bash
gnome-terminal -- ptp4l -i enp3s0f2s -P -2 -s -m -q
gnome-terminal -- phc2sys -a -rr -q -m
这给了我一个错误,因为不应使用 sudo 调用 gnome-terminal。
user:~/myFolder$ sudo ./init.sh

#!/bin/bash
sudo -u $SUDO_USER gnome-terminal -- ptp4l -i enp3s0f2s -P -2 -s -m -q
sudo -u $SUDO_USER gnome-terminal -- phc2sys -a -rr -q -m
这给了我一个错误,因为这两个服务都需要 sudo
user:~/myFolder$ ./init.sh

#!/bin/bash
gnome-terminal -- sudo ptp4l -i enp3s0f2s -P -2 -s -m -q
gnome-terminal -- sudo phc2sys -a -rr -q -m
没有错误,但在这里我需要为每个终端输入 sudo 密码

最佳答案

更简单的方法是使用 tmux ( see ) 来做。
您可以在终端中执行初始 sudo。然后使用您需要并行运行的命令启动 tmux(您可以使用下面的示例命令并将其添加到脚本中)。

tmux new-session -d -s multi-run 'your command'
tmux splitw -h -p 66 'your command'
tmux splitw -h -p 50 'your command'
tmux selectp -t 1
tmux splitw -v -p 50 'your command'
tmux selectp -t 3
tmux splitw -v -p 50 'your command'
tmux attach-session -t multi-run

关于linux - 从 bash 打开多个 gnome 终端并执行 sudo 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71268598/

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