批量窗口管理工具screenctl

批量窗口管理工具screenctl

Zhiyu Lv4

自己写的一个批量管理linux screen的工具screenctl,支持批量创建删除,命令执行,Web UI管理等功能。(Collaborators wanted)

好吧,Web UI 还没做出来。🤣

1 安装

1
2
3
4
5
# 安装screen
sudo apt install screen

# 安装screenctl (刚上传pypi不久,可能其他源还没有更新)
pip install screenctl -i https://pypi.org/simple
  • screenctl -h 查看帮助
1
2
3
4
5
6
7
8
9
10
11
usage: screenctl [-h] [-c CONF] [-v] action

screenctl 0.0.4, Controller for screen

positional arguments:
action create, delete, stat, server

optional arguments:
-h, --help show this help message and exit
-c CONF, --conf CONF path to configuration
-v, --verbose show verbose output

2 使用

  • 批量创建
1
2
3
4
5
6
7
8
9
10
11
12
# 批量创建screen并按照指定配置文件执行一条命令(常用于Fuzz)
screenctl create -c job.json

# job.json示例如下:
{
"screen_name1": "echo \"name1\" >> name1.log",
"screen_name2": "timeout 12h /PATH/TO/afl-fuzz -i in -o out PROGRAM ARGS @@",
"screen_name3": "ping -c 100 baidu.com"
}

# 批量查看screen状态
screenctl stat -c job.json
  • 批量删除
1
2
3
4
# 批量删除job.json中的所有窗口
screenctl delete -c job.json

# TODO: 支持自定义删除
  • Web UI (TODO),抽时间写 🕊🕊🕊
1
2
3
4
5
# TODO: 启动Web UI来批量管理screen,界面类似于supervisor
# 支持UI界面批量/单独操作screen的启动与删除,以及其中的执行命令和输出回显
screenctl server -c job.json

# 🕊咕子咕子

3 实现原理

批量管理模块

调用screen罢了hhh

1
2
3
4
5
6
7
8
# 创建screen
screen -dm NAME

# 在screen中执行命令
screen -x -S NAME -X stuff CMD

# 删除screen
screen -r NAME -X quit

To be completed

  • Title: 批量窗口管理工具screenctl
  • Author: Zhiyu
  • Created at : 2023-01-26 21:27:04
  • Updated at : 2026-02-18 00:36:56
  • Link: https://qgrain.github.io/2023/01/26/批量窗口管理工具screenctl/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
批量窗口管理工具screenctl