本地启动多个 http-server 能在一个窗口里嘛?

2020-04-12 18:43:19 +08:00
 JCZ2MkKb5S8ZX9pq

需求

提问

1959 次点击
所在节点    问与答
31 条回复
cmdOptionKana
2020-04-12 21:32:32 +08:00
@JCZ2MkKb5S8ZX9pq autohotkey 会帮你对应 pid 。

用 autohotkey 的代码来打开窗口,这个窗口就受你控制了。
JCZ2MkKb5S8ZX9pq
2020-04-12 21:34:37 +08:00
@cmdOptionKana
那我再看看你的代码,刚才没看明白。
cmdOptionKana
2020-04-12 21:34:41 +08:00
@JCZ2MkKb5S8ZX9pq 我用 autohotkey 打开控制台,于是这个控制台就受我控制,我可以用让它隐藏、显示、输入命令、输入回车或任何按键。
dicc
2020-04-13 10:29:46 +08:00
import os
import threading


def start(cmd):
while 1:
os.system('"%s"' % cmd)
print('>>>', cmd)


def run(cmd):
threading._start_new_thread(start, (cmd, ))


run(r'D:\app\bill.bat - 快捷方式.lnk')
run(r'D:\app\frps_run.bat - tmp.lnk')
run(r'D:\app\frps_run.bat - 快捷方式.lnk')
run(r'D:\app\serv.bat - 快捷方式.lnk')
start(r"D:\app\webd.bat - 快捷方式.lnk")
dicc
2020-04-13 10:30:21 +08:00
改下缩进, 我就是这样勉强用着的
JCZ2MkKb5S8ZX9pq
2020-04-13 14:19:06 +08:00
@dicc
嗯,你这个倒提醒我了。
以前用过 multiprocessing,记得是可以打印子进程的内容的。
threading 倒是没怎么用过,我感觉可以尝试一下。
JCZ2MkKb5S8ZX9pq
2020-04-13 21:20:19 +08:00
@dicc 试了一下多进程
def main():
p = Pool(len(cmd_list)) # 设置进程数
for cmd in cmd_list:
p.apply_async(os.system(cmd))
p.close()
p.join()
JCZ2MkKb5S8ZX9pq
2020-04-13 21:21:24 +08:00
@dicc 不过这样写的话,只能打印到 cmd_list 里的第一个 cmd 的信息,后面两个在后台,但打印信息回不到主窗口。不知道怎么改进比较好。
JCZ2MkKb5S8ZX9pq
2020-04-13 21:35:00 +08:00
@dicc 发现还是不能偷懒,拆成 function 顺利解决。
详见 append 。
dicc
2020-04-13 21:39:13 +08:00
@JCZ2MkKb5S8ZX9pq http://chat.bpbpbp.xyz:8000/download/tt.7z/static/upload/faffc1f15ef0ed31.7z

我用的多线程,不是多进程,不信你试试我这个,执行 tt-main.py 就行了
JCZ2MkKb5S8ZX9pq
2020-04-13 21:40:32 +08:00
@dicc 我知道你是多线,我个人偏好多进程一点,能用就行哈。刚补齐 append 的部分了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/661731

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX