如何在 Docker 容器中生成用户屏幕?

如何在 Docker 容器中生成用户屏幕?

运行vdir:UNIX初始化方案有服务监督fromrunit是一个很好的工具,可以在某些服务死掉时重新运行它。它监视目录的更改,inotify例如。它永远执行目录中的脚本。

我有这样的结构:

$ tree app
app
├── service
│   ├── run
│   └── supervise
├── replay
│   ├── run
│   └── supervise
└── run
    ├── run
    └── supervise

我想做的是这样的事情,基于app/run/runapp/replay/run(我尝试了链接中的解决方案,但失败了):

su - user -c screen -S run<<EOF
[...]
# code
EOF

代码必须阻塞/等待以避免runsvdir在 // 中运行多个实例。

该代码在容器中以 root 身份运行docker。不在systemd这里。

我测试了许多我想避免的解决方案,其中多个进程的 pid 已失效。我错过了一些可能显而易见的事情。

任何想法?

  • debian 11 直到下周;)
  • 鲁尼特 2.1.2-41

注释/编辑:不强制从 . 创建运行/重播init。它可以是 shell 脚本 (bash)。必须screen只运行一次。

答案1

之后修复如下docker build .

docker exec -d -u mevatlave cont screen -d -m -S run ./run
docker exec -d -u mevatlave cont screen -d -m -S replay ./replay.sh
docker exec -it -u mevatlave cont screen -x run

相关内容