我在 docker 中的入口点 shell 脚本中启动一个屏幕会话,然后将输出记录screen -list
到文件中。
#!/bin/bash
screen -S my_screen -dm bash -c 'cd project && npm run start'
screen -list > scr_list.log
然后我连接到docker容器并查看生成的日志。
here is a screen on:
14.my_screen (12/18/24 17:55:29) (Detached)
1 Socket in /run/screen/S-root.
但是当我screen -list
连接后手动运行时,它会输出:
No Sockets found in /run/screen/S-root.
使用同一个用户(whoami):root
我目前在容器内运行多个屏幕服务,每当我在容器中进行一些更改时,我都会不时手动重启单个服务
请问您知道可能是什么问题吗?
我弄清楚了这个问题:
npm
没有找到。用来
read -p
暂停脚本并最终发现该脚本screen
仍然存在,但被终止了。更新
要将 node 和 npm 添加到
$PATH
变量中,而不需要知道版本号,请使用:原始解决方案
通过运行,
which npm
我找到了我的 npm 安装(版本)的路径,然后将其添加到我的脚本中的 $PATH。(
npm
可执行文件所在的文件夹)