Ruby on rails Mac OS Catalina无法正确关闭,如果;rails服务器";使用

Ruby on rails Mac OS Catalina无法正确关闭,如果;rails服务器";使用,ruby-on-rails,macos,macos-catalina,ruby-on-rails-6,Ruby On Rails,Macos,Macos Catalina,Ruby On Rails 6,我一直在MacOSCatalina上使用Rails6.0.1的RailsServer。我注意到,如果启动服务器(无论是使用Puma还是unicorn),并关闭它,然后尝试关闭计算机,它就会挂起,直到苹果的监管机构强制关闭系统。在下一次启动时,我总是收到相同的崩溃报告 panic(cpu 2 caller 0xffffff7f8ef9daae): watchdog timeout: no checkins from watchdogd in 187 seconds (21 totalcheckin

我一直在MacOSCatalina上使用Rails6.0.1的
RailsServer
。我注意到,如果启动服务器(无论是使用Puma还是unicorn),并关闭它,然后尝试关闭计算机,它就会挂起,直到苹果的监管机构强制关闭系统。在下一次启动时,我总是收到相同的崩溃报告

panic(cpu 2 caller 0xffffff7f8ef9daae): watchdog timeout: no checkins from watchdogd in 187 seconds (21 totalcheckins since monitoring last enabled), shutdown in progress
Backtrace (CPU 2), Frame : Return Address
0xffffff83b7473c40 : 0xffffff800e539a3b
0xffffff83b7473c90 : 0xffffff800e670fe5
0xffffff83b7473cd0 : 0xffffff800e662a5e
0xffffff83b7473d20 : 0xffffff800e4e0a40
0xffffff83b7473d40 : 0xffffff800e539127
0xffffff83b7473e40 : 0xffffff800e53950b
0xffffff83b7473e90 : 0xffffff800ecd1875
0xffffff83b7473f00 : 0xffffff7f8ef9daae
0xffffff83b7473f10 : 0xffffff7f8ef9d472
0xffffff83b7473f50 : 0xffffff7f8efb2e76
0xffffff83b7473fa0 : 0xffffff800e4e013e
      Kernel Extensions in backtrace:
         com.apple.driver.watchdog(1.0)[AA44EEB8-57FA-3CAC-9105-C7AB21900B9A]@0xffffff7f8ef9c000->0xffffff7f8efa4fff
         com.apple.driver.AppleSMC(3.1.9)[6DA4BDC6-9C64-34B3-A60E-D345D2DC2D5F]@0xffffff7f8efa5000->0xffffff7f8efc3fff
            dependency: com.apple.driver.watchdog(1)[AA44EEB8-57FA-3CAC-9105-C7AB21900B9A]@0xffffff7f8ef9c000
            dependency: com.apple.iokit.IOACPIFamily(1.4)[4A40B298-87E0-373E-84A9-9A2227924F8F]@0xffffff7f8ef07000
            dependency: com.apple.iokit.IOPCIFamily(2.9)[AA7C7A4F-9F5D-3533-9E78-177C3B6A72BF]@0xffffff7f8ef10000

BSD process name corresponding to current thread: kernel_task
Boot args: chunklist-security-epoch=0 -chunklist-no-rev2-dev

Mac OS version:
19B88

Kernel version:
Darwin Kernel Version 19.0.0: Thu Oct 17 16:17:15 PDT 2019; root:xnu-6153.41.3~29/RELEASE_X86_64

还有其他人看到过这个问题吗?您是如何着手解决的?我的猜测是,
rails服务器
即使在通过Ctrl-C关闭后仍会运行一些进程,这会阻止操作系统正确关闭。

这是Catalina的一个常见问题,苹果显然对此并不在意。你可以看到,还有


到目前为止,还没有可用的修复程序,但是重置SMC/NVRAM可以让您正常关机。

不受此问题影响的一种方法是使用和

我知道它不能解决您的根本问题,但对于Docker,您是操作系统不可知论者,因此您可以在任何操作系统上工作,如果可以的话,您的项目仍然可以工作。您还可以在操作系统升级中生存


Docker现在非常普遍和流行,因此您可以从社区获得很多帮助。有很多博客文章解释如何将Rails应用程序容器化。

这不是一种真正的专业方法,但是

  • 打开一个终端(如果可能,请使用特权)
  • 使用正在运行的进程的“ps”(“我似乎记得ps awxu”)拍摄快照
  • 启动Rails服务器
  • 修补一下
  • 现在停止服务器
  • 再拍一张快照
我完全希望一些低级后台进程一直在运行,没有听到关机信号。MacOS关机过程可能表现得太好,太有礼貌了

如果是这种情况,请获取进程的PID或名称,并尝试使用HUP、TERM和FILL KILL信号对其进行pkilling。通过检查这些进程的映像路径,您可以很好地了解它们的起始位置(注意不要杀死无辜的进程)


请等待一段时间,以确保进程不会使系统处于不稳定状态,然后尝试关闭计算机,查看运行情况。

我也发现了此问题

这个问题是关于
Catalina
图形处理单元的支持

如果您使用的是
NVIDIA
图形芯片,
Catalina
没有问题

但是如果您在
Catalina
尤其是2015年的macbook pro

许多应用程序提供商已经与此问题兼容

但苹果公司并没有回应


对于用户来说,这是苹果的问题。

但如果我使用rails c,这种情况似乎会发生。如果我不这样做,那么我就可以正确地关闭。这种情况发生在多个backgorund进程中,在我的例子中是PostgreSQL和SteelSeries鼠标驱动程序。在启动Rails之后,可能有一些进程处于活动状态,这会导致系统watchogd在关闭前等待3分钟