Python:如何通过SSH执行需要` sudo'的程序`

Python:如何通过SSH执行需要` sudo'的程序`,python,subprocess,Python,Subprocess,我需要使用SSH在远程Linux机器上运行deamon 迪蒙的名字是pigpiod,它属于pigpio模块(控制树莓Pi的GPIO),Ubuntu Mate 16.04 执行不需要sudo(例如-ls)的命令时,脚本运行正常,而需要sudo的命令则失败 adress='192.168.2.112'是运行此守护程序的远程Linux 以下代码失败(运行sudo pigpiod): 下面的代码成功(运行ls-l) 为了检查子流程运行是否能够在同一台机器上本地执行sudo+命令-I并成功: def ru

我需要使用SSH在远程Linux机器上运行deamon

迪蒙的名字是
pigpiod
,它属于
pigpio
模块(控制树莓Pi的GPIO),Ubuntu Mate 16.04

执行不需要
sudo
(例如-
ls
)的命令时,脚本运行正常,而需要
sudo
的命令则失败

adress='192.168.2.112'是运行此守护程序的远程Linux

以下代码失败(运行sudo pigpiod):

下面的代码成功(运行ls-l

为了检查
子流程运行是否能够在同一台机器上本地执行sudo+命令-I并成功:

def run_process():
    try:
        check_output(["pidof","pigpiod"])
        print("pigpiod already loaded")
    except:
        subprocess.CalledProcessError
        print("Not Loaded")
        subprocess.run(['sudo','pigpiod'])
        if os.system("pgrep -x "+name)==0:
            print("Loaded successfully")
代码更改(由于@Hamuel的注释)-如中所述


你能这样做吗?是的,多亏了
sudo-t
def runpigpiod_remote(adress):
    result = subprocess.run(['ssh','guy@'+adress,'ls','-l'])
def run_process():
    try:
        check_output(["pidof","pigpiod"])
        print("pigpiod already loaded")
    except:
        subprocess.CalledProcessError
        print("Not Loaded")
        subprocess.run(['sudo','pigpiod'])
        if os.system("pgrep -x "+name)==0:
            print("Loaded successfully")
def runpigpiod_remote(adress):
    result = subprocess.run(['ssh','-t','guy@'+adress,'sudo','pigpiod'])