簡體   English   中英

如果使用“rails server”,Mac OS Catalina 不會正確關閉

[英]Mac OS Catalina does not shutdown correctly if "rails server" is used

我一直在 Mac OS Catalina 上使用rails server和 Rails 6.0.1。 我注意到如果啟動服務器(無論是使用 Puma 還是 unicorn),然后關閉它,並嘗試關閉計算機,它只會掛起,直到 Apple 的看門狗強行關閉系統。 下次啟動時,我總是得到相同的崩潰報告。

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 server即使在通過 Ctrl-C 關閉后rails server保留一些進程運行,這會阻止操作系統正確關閉。

不是真正的專業方法,但是......

  • 打開一個終端(如果可能的話,有特權)
  • 使用正在運行的進程的“ps”(我似乎記得是“ps awxu”)拍攝快照
  • 啟動 Rails 服務器
  • 稍微修補一下
  • 現在停止服務器
  • 再拍一張

我完全希望一些低級別的后台進程一直在運行並且不收聽關閉信號。 MacOS 關機過程可能出於自身利益而表現得過於乖巧和禮貌。

如果是這種情況,請獲取進程的 PID 或名稱,然后嘗試使用 HUP、TERM 和最后 KILL 信號對其進行 pkill。 您可以通過檢查它們的映像路徑(注意不要殺死無辜的進程)來很好地了解這些進程的起始位置。

等待一段時間以確保 pkill 進程不會使系統處於不穩定狀態,然后嘗試關閉機器並查看它是如何進行的。

這是 Catalina 常見的問題,Apple 顯然不在乎。 您可以查看此 stackexchange 線程Apple 論壇討論

到目前為止,還沒有可用的修復程序,但是重置 SMC/NVRAM 可以讓您正常關閉幾次。

不受此問題影響的一種方法是使用Dockerdocker-compose

我知道它不能解決您的根本問題,但是對於 Docker,您與操作系統無關,因此您可以在任何操作系統上工作,並且如果您可以安裝 Docker ,您的項目仍然可以正常工作。 您還將在操作系統升級中幸存下來。

Docker 現在非常普遍和流行,因此您可以從社區獲得很多幫助,有很多博客文章解釋了如何容器化 Rails 應用程序。

我也發現了這個問題。

這個問題是關於CatalinaGraphic Processing Unit支持

如果你使用的是NVIDIA Graphic 芯片, Catalina是沒有問題的,

但是如果你在Catalina中使用AMD會出現問題,尤其是 2015 年的macbook pro

很多APP提供商已經兼容這個問題,

但蘋果公司並未對此作出回應。

對於用戶來說,這是蘋果的一個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM