2025年11月5日 星期三

[Linux] 設定開機啟動core dump

在your_app.service裡加上

 [Service]

LimitCORE=infinity

ExecStartPre=/bin/bash -c 'echo "/home/pi/core.%e.%p" > /proc/sys/kernel/core_pattern'


 "/home/pi/core.%e.%p"是指定要產生core檔的目錄和檔名,這會在/home/pi/產生core.your_app_name.your_app_pid,例如core.myapp.3234


如果your_app.service裡 User=pi,不是root
另外建一個setup_core_dump.sh

#!/bin/bash

# 設定 core dump 輸出位置與格式

echo "/home/pi/hs1650t/core.%e.%p" > /proc/sys/kernel/core_pattern

然後

[Service]
# 第一步:以 root 設定 core dump pattern
ExecStartPre=/usr/local/bin/setup_core_dump.sh

# 第二步:以 pi 身分執行應用程式
User=pi

設定完要重開機或重啟服務
然後測試可以直接用
sudo kill -SEGV <your app 的 PID>

就不用特別寫一個會掛掉的程式來測


沒有留言:

張貼留言