从python3在两个不同的终端启动两个shell sudo脚本

问题描述 投票:-1回答:2

我有一个嵌入式系统,我可以在其上运行代码。每次我想运行代码时,我都会在两个不同的终端启动两个脚本:“run1.sh”和“run2.sh”。我可以在终端中看到这些脚本的输出(我也希望)。

现在我想创建一个python脚本,在两个不同的终端中启动这两个脚本。我还想看看他们的输出。此外,我想从python脚本插入一个密码到终端,因为脚本在sudo模式下运行。我在supbrocess和PIPES上玩了很多,但我从未同时达到所有上述要求。如何满足这些要求?

我正在使用Ubuntu btw(所以我有gnome终端)

更新:我的问题可能不太清楚,但这必须在python脚本中。这不是为了我的方便,它是整合过程的一部分。脚本的代码将是更大的python程序的一部分,所以问题的重点是如何在python中执行它。

python shell terminal sudo
2个回答
1
投票

根据您添加的新信息,我创建了一个小的python脚本,它将分别启动两个终端及其输出:

enter image description here

主要脚本:

mortiz@florida:~/Documents/projects/python/split_python_execution$ cat split_pythonstuff.py 
#!/usr/bin/python3
import subprocess

subprocess.call(['gnome-terminal', '-x', 'python', '/home/mortiz/Documents/projects/python/split_python_execution/script1.py'])
subprocess.call(['gnome-terminal', '-x', 'python', '/home/mortiz/Documents/projects/python/split_python_execution/script2.py'])

脚本1:

mortiz@florida:~/Documents/projects/python/split_python_execution$ cat script1.py 
#!/usr/bin/python3

while True :
   print ('script 1')

脚本2:

mortiz@florida:~/Documents/projects/python/split_python_execution$ cat script2.py 
#!/usr/bin/python3

while True:

    print ('script 2')

从这里我想你可以开发任何你想要的东西。

更新:关于sudo

Sudoers是控制哪些东西可以由提供密码的特定用户执行的好方法。

如果在/ etc / sudoers中添加此行,则在将sudo传递给命令时不需要密码:

<YOUR_USER> ALL = NOPASSWD : /usr/bin/python <SCRIPT.py>

在您的问题中,据我所知,您将密码存储在脚本中。没有必要这样做,这是一个不好的做法。 Sudoers将是一个更好的方式。

无论如何,如果你想以一种不安全的方式做到这一点,那么refer to this question并将它放在本答案中提供的脚本中的命令之前。

链接提供的作品:

echo -e "mypassword\n" | sudo -S python test.py
15

您只需要在以前的代码上实现它。


0
投票

您可以安装Terminator并为每个终端配置一个配置文件以运行您想要的任何脚本。

我有一个默认模板,如果你想要加载3个终端并运行3个不同的命令/或脚本:

enter image description here

当我加载该配置文件时,第一个将移动到我的项目目录并列出它们。下一个将运行df -h以查看可用空间和较低的我的ip配置。

这种方式可以节省大量的编程,而且非常简单。

更新:它将运行任何命令,bash,zsh,python等..可用于您的终端。如果脚本位于您的计算机本地:

python <your_script_1> # first terminal profile
python <your_script_2> # second terminal profile

两者都将“同时”执行。

如果您的脚本在目标计算机中是远程的,只需使用ssh创建一个bash脚本,使用私钥连接到远程计算机,然后运行该脚本,两种情况下的结果都是相同的。

编辑:最好的事情是为每个终端设置颜色和透明度,这样你就可以在工作时享受企鹅的自拍。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.