Strengthen plain stop wrappers
The prompts used to arrive at this change since the previous commit User reported that the stop_mailcat script does not stop mailcat. Any special observations that may be relevant for version management for this version. Be brief. Plain-mode stop_mailcat.sh and stop_web.sh now wait longer after SIGTERM and fall back to SIGKILL. verplaats_log.json and plan.md were left unstaged.
This commit is contained in:
+30
-4
@@ -184,12 +184,25 @@ fi
|
|||||||
|
|
||||||
if kill -0 "\$pid" 2>/dev/null; then
|
if kill -0 "\$pid" 2>/dev/null; then
|
||||||
kill "\$pid"
|
kill "\$pid"
|
||||||
sleep 2
|
timeout=20
|
||||||
|
while [ "\$timeout" -gt 0 ] && kill -0 "\$pid" 2>/dev/null; do
|
||||||
|
sleep 1
|
||||||
|
timeout=\$((timeout - 1))
|
||||||
|
done
|
||||||
if kill -0 "\$pid" 2>/dev/null; then
|
if kill -0 "\$pid" 2>/dev/null; then
|
||||||
echo "mailcat still running after SIGTERM: \$pid"
|
echo "mailcat still running after SIGTERM, sending SIGKILL: \$pid"
|
||||||
|
kill -KILL "\$pid" 2>/dev/null || true
|
||||||
|
timeout=5
|
||||||
|
while [ "\$timeout" -gt 0 ] && kill -0 "\$pid" 2>/dev/null; do
|
||||||
|
sleep 1
|
||||||
|
timeout=\$((timeout - 1))
|
||||||
|
done
|
||||||
|
if kill -0 "\$pid" 2>/dev/null; then
|
||||||
|
echo "mailcat still running after SIGKILL: \$pid"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
"\$RM" -f "\$PID_FILE"
|
"\$RM" -f "\$PID_FILE"
|
||||||
echo "mailcat stopped"
|
echo "mailcat stopped"
|
||||||
STOP_SCRIPT
|
STOP_SCRIPT
|
||||||
@@ -286,12 +299,25 @@ fi
|
|||||||
|
|
||||||
if kill -0 "\$pid" 2>/dev/null; then
|
if kill -0 "\$pid" 2>/dev/null; then
|
||||||
kill "\$pid"
|
kill "\$pid"
|
||||||
sleep 2
|
timeout=20
|
||||||
|
while [ "\$timeout" -gt 0 ] && kill -0 "\$pid" 2>/dev/null; do
|
||||||
|
sleep 1
|
||||||
|
timeout=\$((timeout - 1))
|
||||||
|
done
|
||||||
if kill -0 "\$pid" 2>/dev/null; then
|
if kill -0 "\$pid" 2>/dev/null; then
|
||||||
echo "mailcat web still running after SIGTERM: \$pid"
|
echo "mailcat web still running after SIGTERM, sending SIGKILL: \$pid"
|
||||||
|
kill -KILL "\$pid" 2>/dev/null || true
|
||||||
|
timeout=5
|
||||||
|
while [ "\$timeout" -gt 0 ] && kill -0 "\$pid" 2>/dev/null; do
|
||||||
|
sleep 1
|
||||||
|
timeout=\$((timeout - 1))
|
||||||
|
done
|
||||||
|
if kill -0 "\$pid" 2>/dev/null; then
|
||||||
|
echo "mailcat web still running after SIGKILL: \$pid"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
"\$RM" -f "\$WEB_PID_FILE"
|
"\$RM" -f "\$WEB_PID_FILE"
|
||||||
echo "mailcat web stopped"
|
echo "mailcat web stopped"
|
||||||
WEB_STOP_SCRIPT
|
WEB_STOP_SCRIPT
|
||||||
|
|||||||
+8
-4
@@ -193,6 +193,7 @@ In `SERVICE_MANAGER=plain` mode:
|
|||||||
- The sorter appends wrapper stdout/stderr to `$LOG_DIR/daemon.out`.
|
- The sorter appends wrapper stdout/stderr to `$LOG_DIR/daemon.out`.
|
||||||
- The web UI appends stdout/stderr to `$LOG_DIR/web.out`.
|
- The web UI appends stdout/stderr to `$LOG_DIR/web.out`.
|
||||||
- The daily report wrapper appends stdout/stderr to `$LOG_DIR/daily_report.out`.
|
- The daily report wrapper appends stdout/stderr to `$LOG_DIR/daily_report.out`.
|
||||||
|
- `stop_mailcat.sh` and `stop_web.sh` in plain mode now send SIGTERM, wait up to 20 seconds, then fall back to SIGKILL and wait up to 5 seconds before reporting failure.
|
||||||
|
|
||||||
Before starting services on the NAS:
|
Before starting services on the NAS:
|
||||||
|
|
||||||
@@ -239,6 +240,8 @@ python3 -m unittest discover -s tests
|
|||||||
git diff --check
|
git diff --check
|
||||||
```
|
```
|
||||||
|
|
||||||
|
After the plain-mode stop wrapper change, `bash -n deploy_vps.sh` was rerun successfully.
|
||||||
|
|
||||||
Useful routing sanity check:
|
Useful routing sanity check:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@@ -255,7 +258,8 @@ PY
|
|||||||
|
|
||||||
Likely next steps:
|
Likely next steps:
|
||||||
|
|
||||||
1. Deploy the Apple Mail link update to the NAS if the user wants it live there.
|
1. Deploy the Apple Mail link update and strengthened stop wrappers to the NAS.
|
||||||
2. Run `/share/homes/mailcat/mailcat/bin/run_daily_report.sh` manually on the NAS to send a test digest.
|
2. If an already-running sorter will not stop with the old wrapper, stop it manually by reading `$RUN_DIR/mailcat.pid` and sending TERM/KILL to that PID, then remove the stale PID file.
|
||||||
3. Open the digest on macOS Mail and verify subject links open local Apple Mail messages.
|
3. Run `/share/homes/mailcat/mailcat/bin/run_daily_report.sh` manually on the NAS to send a test digest.
|
||||||
4. If iOS/web reliability is needed later, add Roundcube links using mailbox plus IMAP UID, or add a read-only Mailcat message viewer.
|
4. Open the digest on macOS Mail and verify subject links open local Apple Mail messages.
|
||||||
|
5. If iOS/web reliability is needed later, add Roundcube links using mailbox plus IMAP UID, or add a read-only Mailcat message viewer.
|
||||||
|
|||||||
Reference in New Issue
Block a user