KBEngine官方论坛

 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 配置 开服
查看: 57|回复: 5

如何给所有进程发送命令

[复制链接]

77

主题

281

帖子

855

积分

高级会员

Rank: 4

积分
855
发表于 2018-11-30 11:58:58 | 显示全部楼层 |阅读模式


linux 中,怎么给所有进程发送指令啊

现在给进程发指令(运行python函数)得一个个Telnet登录到进程才能运行python函数

通过machine能发送指令么,或者有什么好的方式做到这一点




回复

使用道具 举报

77

主题

281

帖子

855

积分

高级会员

Rank: 4

积分
855
 楼主| 发表于 2018-11-30 15:51:24 | 显示全部楼层
知道了一种方式了

使用python的telnetlib 包去登录Telnet server,然后write python的commandstr 就可以了
回复

使用道具 举报

77

主题

281

帖子

855

积分

高级会员

Rank: 4

积分
855
 楼主| 发表于 2018-11-30 15:54:31 | 显示全部楼层
给个例子说明一下
  1. >>> import telnetlib
  2. >>> t = telnetlib.Telnet("192.168.112.129", 40004, timeout=20)
  3. >>> t.write(b"pwd123456\r\n")
  4. >>> t.write("print(11111111111)\r\n".encode("ascii"))
  5. >>>
复制代码


看源码,每个命令的确认是以字符 "\r\n" 作为回车的,不是单单以 "\n"

这样就能在脚本中给进程发送python的函数调用指令了


回复

使用道具 举报

5

主题

3591

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2018-11-30 17:59:33 | 显示全部楼层
cluster_controller.py
QQ:3603661
3603661@qq.com
回复

使用道具 举报

77

主题

281

帖子

855

积分

高级会员

Rank: 4

积分
855
 楼主| 发表于 2018-12-3 10:15:46 | 显示全部楼层
柯标 发表于 2018-11-30 17:59
cluster_controller.py

这个脚本是直接调用的系统的Telnet 命令,还是得手动输入密码以及想运行的python 函数,可以改造一下cluster_controller 然后用上面的Telnet方式连接就可以全程无手动了
回复

使用道具 举报

56

主题

163

帖子

1032

积分

金牌会员

Rank: 6Rank: 6

积分
1032
发表于 2018-12-5 18:24:44 | 显示全部楼层
kbengine_one 发表于 2018-12-3 10:15
这个脚本是直接调用的系统的Telnet 命令,还是得手动输入密码以及想运行的python 函数,可以改造一下clus ...

我是这样做的,起一个tornado服务,然后通过相应端口发送数据,调用globalData来告知全部进程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|KBEngine Forum

GMT+8, 2018-12-19 04:56 , Processed in 0.030281 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表