write crashdumps as logfiles

This commit is contained in:
2026-07-18 18:43:56 +09:00
parent 267af00ebd
commit 422f383fd8
2 changed files with 15 additions and 1 deletions
+11
View File
@@ -3,6 +3,7 @@
import random
import sys
import traceback
from pathlib import Path
from signal import (
SIG_IGN,
SIGQUIT,
@@ -11,6 +12,7 @@ from signal import (
from signal import (
signal as set_signal_handler,
)
from time import ctime, time
from sqlalchemy.orm import Session
@@ -105,6 +107,15 @@ def main(sql_session: Session) -> None:
print(f"{sys.exc_info()[0]}: {sys.exc_info()[1]}")
if config["general"]["show_tracebacks"]:
traceback.print_tb(sys.exc_info()[2])
try:
crashlog_dir = Path('/var/lib/dibbler/crashdumps')
if not crashlog_dir.exists():
crashlog_dir.mkdir(parents=True, exist_ok=True)
with (crashlog_dir / f"crashdump_{int(time())}.log").open("w") as f:
f.write(f"Dibbler crashdump @ {ctime()}\n\n")
traceback.print_exc(file=f)
except: # noqa: S110
pass
else:
break
print("Restarting main menu.")
+4 -1
View File
@@ -102,7 +102,10 @@ in {
Type = "oneshot";
ExecStart = "${lib.getExe cfg.package} --config /etc/dibbler/dibbler.toml create-db";
ExecStartPost = "${lib.getExe' pkgs.coreutils "touch"} /var/lib/dibbler/.db-setup-done";
StateDirectory = "dibbler";
StateDirectory = [
"dibbler"
"dibbler/crashdumps"
];
User = "dibbler";
Group = "dibbler";