chore(scripts): add systemd ExecStartPre for kord log directory
When StandardOutput=append points under ~/kord/logs, systemd opens the file before ExecStart; a missing directory causes status 209/STDOUT. Inject mkdir -p via ExecStartPre so restarts survive a deleted logs folder. Made-with: Cursor
This commit is contained in:
parent
ca9413e665
commit
5280f1987b
|
|
@ -0,0 +1,46 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Run ON THE SERVER as the same user that runs kord (e.g. psa), after: ssh psa@server
|
||||||
|
# Switches kord user service from journal-only to append logs under ~/kord/logs/kord.log
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
UNIT="${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user/kord.service"
|
||||||
|
LOG_DIR="$HOME/kord/logs"
|
||||||
|
LOG_FILE="$LOG_DIR/kord.log"
|
||||||
|
|
||||||
|
mkdir -p "$LOG_DIR"
|
||||||
|
|
||||||
|
if [[ ! -f "$UNIT" ]]; then
|
||||||
|
echo "Unit not found: $UNIT" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp -a "$UNIT" "${UNIT}.bak.$(date +%Y%m%d%H%M%S)"
|
||||||
|
|
||||||
|
# Replace journal with file append (idempotent if already set)
|
||||||
|
sed -i \
|
||||||
|
-e 's|^StandardOutput=journal|StandardOutput=append:'"$LOG_FILE"'|' \
|
||||||
|
-e 's|^StandardError=journal|StandardError=append:'"$LOG_FILE"'|' \
|
||||||
|
"$UNIT"
|
||||||
|
|
||||||
|
# systemd opens StandardOutput=append before ExecStart; if ~/kord/logs was deleted,
|
||||||
|
# the service fails with (code=exited, status=209/STDOUT). Ensure the dir exists first.
|
||||||
|
if ! grep -qE '^ExecStartPre=.*mkdir.*kord/logs' "$UNIT"; then
|
||||||
|
sed -i '/^ExecStart=/i ExecStartPre=-/usr/bin/mkdir -p %h/kord/logs' "$UNIT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
systemctl --user daemon-reload
|
||||||
|
systemctl --user restart kord
|
||||||
|
|
||||||
|
sleep 2
|
||||||
|
systemctl --user --no-pager status kord || true
|
||||||
|
|
||||||
|
echo "--- Last lines of $LOG_FILE (if any) ---"
|
||||||
|
if [[ -f "$LOG_FILE" ]]; then
|
||||||
|
tail -n 20 "$LOG_FILE"
|
||||||
|
else
|
||||||
|
echo "(file not created yet; check status above)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Follow logs: tail -f $LOG_FILE"
|
||||||
Loading…
Reference in New Issue