繁体   English   中英

在网络上的另一台计算机上启动进程

[英]Start a process on another computer on the network

我需要启动一系列python脚本和/或其他Windows可执行文件。 其中一些需要Windows系统,其他一些则需要Linux机器。

当前,有指定的机器来运行与OS相关的程序。 所以我知道我要在哪里开始哪个程序。

有没有一种方法可以从本地网络上另一台计算机(例如,运行192.168.0.101:/dir/python_script_123.py )中的python脚本启动python脚本(或Windows可执行文件)?

然后,应运行各种程序的脚本在伪代码中可能看起来像这样。

linuxip = 192.168.0.101
linuxparam = "required parameter"

winip = 192.168.0.201
winparam = "required parameter"

#option 1 (run all), 2(run linux only), 3(run windows only), 4(run local only)
option = 1

if option == 1:
    magic_things.run("linuxip:/dir/linux_script.py" + linuxparam)
    magic_things.run("winip:C:\\dir\\windows_prog.exe" + winparam)
    subprocess.call(["/dir/local_script.py","parameter"])
    subprocess.call(["/dir/another_local_script.py","parameter"])
elif option ==2:
    [...]

您需要从客户端连接到服务器。 如果是Linux计算机,则可以使用SSH。 参见http://en.wikipedia.org/wiki/Secure_Shell

假设您正在运行的linux服务器上有一个ssh server ,则可以使用paramiko软件包( http://docs.paramiko.org/en/1.15/api/client.html )连接到计算机并在其中运行脚本。

可能看起来像这样:

from paramiko.client import SSHClient

client = SSHClient()
client.load_system_host_keys()
client.connect('linuxip', username='your_user', password='very_secret')
stdin, stdout, stderr = client.exec_command('python /home/your_user/your/path/to/scripty.py')

但是请注意,将密码存储在脚本中并不是很安全,使用公用/专用密钥身份验证可能更好(请参阅Wiki文章)。

paramiko软件包还提供了用于ssh服务器的选项,因此这可能是针对Windows机器的解决方案,但是我不太确定,因为我不再运行任何Windows机器。

希望这对您有所帮助!

大卫

安装ipythonipython kernel在远程服务器上,并ipythonipython kernel在本地机器上。 然后,您可以使用此处的设置连接到远程服务器: https : //stackoverflow.com/a/48332182/4752883

并使用subprocessos内置库运行将在远程计算机上运行的任何程序。 此外,这是与操作系统无关的,因此无论您的客户端/服务器是linux还是WindowsMac

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM