我正在Docker容器中运行一个多进程应用程序实例,每个进程都作为一个简单的守护进程运行。我目前无法调试容器中出现的任何运行时错误,因为let config = Realm.Configuration(objectTypes: [MyClass.self, MyOtherClass.self])
let realm = try! Realm(configuration: config)
经常挂起(并生成交错的打印语句),docker attach
和tmux
似乎都无法正常运行在容器中。此外,将每个单独进程的stdout重定向到日志文件,如下所示:
screen
根本不起作用,因为我只在日志文件中看到警告。一个理想的解决方案是让python myfile.py 1>> mylogfile 2>&1 &
工作。如何调试容器中的进程?
答案 0 :(得分:2)
由于您概述的所有原因。
在Docker的早期“不要运行多个进程!”这不是一个很重要的规则。 Supervisord是推荐的类似initd的工具,用于在一个容器中处理多个服务。它可以尝试监控两者,它可以正确处理日志记录。
ifelse
进行调试 with(df1, ave(Day, Day, ID, FUN= function(x)
NA^(seq_along(x)==1)*(seq_along(x)-1)))
#[1] NA 1 2 NA 1 2 3 NA 1 2
允许您在正在运行的容器上运行额外的命令。用它来获取shell并进行探索。