从 bash 打开多个 gnome 终端并执行 sudo 服务
Opening multiple gnome terminals from bash and execute sudo services
为了我在 Ubuntu OS 上的测量,我总共需要打开 8 个终端和需要 sudo 的 运行 services/commands。所以我的想法是在 bash 脚本中做到这一点。
我想要的:
调用“sudo ./init.sh”,输入 sudo 密码,然后所有 8 个终端应并行打开并执行 services/commands,无需任何进一步的 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 终端。
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
为了我在 Ubuntu OS 上的测量,我总共需要打开 8 个终端和需要 sudo 的 运行 services/commands。所以我的想法是在 bash 脚本中做到这一点。
我想要的: 调用“sudo ./init.sh”,输入 sudo 密码,然后所有 8 个终端应并行打开并执行 services/commands,无需任何进一步的 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 终端。
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