有没有一种方法可以跟踪像 "docker ps" 这样的奇点容器而不用作为奇点实例启动?

Is there a way to track singularity containers like "docker ps" without starting as singularity instance?

有没有办法像“docker ps”一样跟踪 运行 奇点容器?或奇点在某处记录任何 start/stop 信息。

我已经尝试过“奇点实例列表”命令,但它不适用于不是以“奇点实例开始”开头的奇点容器

奇点运行奇点执行

[vagrant@localhost ~]$ singularity exec hello-world_latest.sif sleep 600 &
[1] 31167
[vagrant@localhost ~]$ jobs
[1]+  Running                 singularity exec hello-world_latest.sif sleep 600 &

[vagrant@localhost ~]$ singularity instance list
INSTANCE NAME    PID    IP    IMAGE

奇点运行奇点实例开始

[vagrant@localhost ~]$ singularity instance start lolcow_latest.sif cow1
INFO:    instance started successfully
[vagrant@localhost ~]$ singularity instance list
INSTANCE NAME    PID      IP    IMAGE
cow1             31033          /home/vagrant/lolcow_latest.sif

有什么想法吗?提前致谢!

如您所见,instance list 仅列出作为实例启动的奇点进程。实例日志(运行 和过去)存储在 ~/.singularity/instances/logs/$HOSTNAME/$USER.

不会在任何地方跟踪来自非实例命令的活动进程。这主要是因为 Singularity 没有使用像 Docker 这样的集中式服务模型。同样,没有“默认”日志位置,因为 stdout/stderr 的处理方式与 运行 任何其他命令相同。因此,可以使用标准 shell 工具追踪奇点过程。


一些例子:

# show your running Singularity processes (all users: aux)
ps ux | grep '[S]ingularity'

# Output:
#   tsnowlan 1350116  0.1  0.0 1237336 16804 pts/2   Sl   13:29   0:00 Singularity runtime parent
#   tsnowlan 1350273  0.7  0.0 1238488 16608 pts/2   Sl   13:29   0:00 Singularity runtime parent

# Check what the processes are doing
pstree -p 1350116

# Output:
#   starter-suid(1350116)─┬─foo.sh(1350131)─┬─foo.sh(1350153)───sleep(1350160)
#                         │                 ├─foo.sh(1350154)───sleep(1350162)
#                         │                 ├─foo.sh(1350155)───sleep(1350163)
#                         │                 ├─foo.sh(1350156)───sleep(1350161)
#                         │                 ├─foo.sh(1350157)───sleep(1350164)
#                         │                 ├─foo.sh(1350158)───sleep(1350166)
#                         │                 ├─foo.sh(1350159)───sleep(1350168)
#                         │                 ├─foo.sh(1350165)───sleep(1350172)
#                         │                 ├─foo.sh(1350167)───sleep(1350171)
#                         │                 ├─foo.sh(1350169)───sleep(1350173)
#                         │                 └─foo.sh(1350170)───sleep(1350174)
#                         ├─{starter-suid}(1350133)
#                         ├─{starter-suid}(1350134)
#                         ├─{starter-suid}(1350135)
#                         ├─{starter-suid}(1350136)
#                         ├─{starter-suid}(1350137)
#                         ├─{starter-suid}(1350145)
#                         └─{starter-suid}(1350146)