Xinetd
systemd:獲取 xinetd 啟動的服務的核心轉儲
我最近將系統升級到 openSUSE 13.1。我們正在通過 xinetd 在系統上執行定制服務,並且在舊的 xinetd 初始化腳本中,
ulimit -c unlimited
在啟動 xinetd 之前有一行程式碼來啟用核心轉儲。由於 openSUSE 13.1 使用 systemd,這不再起作用。
systemd-coredumpctl
即使有確認崩潰的核心日誌消息,也找不到任何核心轉儲。從 bash 手動啟動服務,然後發送 SIGSEGV 確實會在我們配置的目錄中創建核心轉儲。如何恢復我的核心轉儲?
事實證明 systemd 支持在配置文件中設置限制,這些資訊只是分散在各個手冊頁中。根據systemd.exec,核心轉儲創建/文件大小的限制是使用 LimitCORE 設置的。此外,可以修改單元/服務配置,而無需修改系統提供的配置文件。ArchLinux Wiki中的更多資訊。
/etc/systemd/system/xinetd.service.d/core.conf
因此創建具有以下內容的文件(和父目錄)[Service] LimitCORE=infinity
然後執行
# systemctl daemon-reload # systemctl restart xinetd
啟動創建核心轉儲所需的更改。