Update nexus: fix conflicts and sync local changes

This commit is contained in:
Shen Wei
2026-04-26 12:06:50 +08:00
parent 191797c01b
commit f09834b5a5
2443 changed files with 254323 additions and 255154 deletions

View File

@@ -1,111 +1,111 @@
---
title: "进程管理"
tags: [linux, process, backup, ubuntu]
date: 2026-04-26
---
# 进程管理 (Process Management)
## Definition
进程管理涵盖 Linux 系统中进程的创建、监控、控制和终止。在备份场景下,进程管理主要指如何安全地启动、监控和停止 rsync 备份进程。
## Starting Background Processes
### nohup (No Hang Up)
防止终端关闭导致进程被 SIGHUP 信号终止:
```bash
sudo nohup /usr/local/bin/rsync_backup.sh > /dev/null 2>&1 &
```
- `nohup`: 忽略挂起信号
- `> /dev/null 2>&1`: 重定向输出到空设备
- `&`: 后台运行
### screen / tmux (推荐)
创建持久化终端会话:
```bash
# 创建新会话
screen -S backup
# 运行脚本
sudo /usr/local/bin/rsync_backup.sh
# 脱离会话 (继续运行)
Ctrl + A + D
# 恢复会话
screen -r backup
```
**tmux 命令相同**,将 `screen` 替换为 `tmux`
## Stopping Processes
### SIGTERM vs SIGKILL
| Signal | Command | Behavior | Use Case |
|--------|---------|----------|----------|
| SIGTERM (15) | `killall rsync` | 优雅终止,允许进程完成当前写入并清理 | **首选**,防止数据损坏 |
| SIGKILL (9) | `killall -9 rsync` | 强制立即终止,无法清理 | 仅在进程卡死时使用 |
### Process Management Commands
```bash
# 查看 rsync 进程
ps aux | grep rsync
# 优雅停止所有 rsync 进程
sudo killall rsync
# 强制杀死(谨慎使用)
sudo killall -9 rsync
# 通过脚本名称停止
sudo pkill -f rsync_backup.sh
```
## Lock File Pattern
防止重复执行同一备份任务:
```bash
LOCKFILE="/tmp/rsync_backup.lock"
# 检查锁文件是否存在且进程存活
if [ -e ${LOCKFILE} ] && kill -0 `cat ${LOCKFILE}`; then
echo "备份任务已在运行中,跳过本次执行。"
exit
fi
# 创建锁文件(写入当前进程 PID
echo $$ > ${LOCKFILE}
# 脚本结束时清理锁文件
trap "rm -f ${LOCKFILE}" EXIT
```
## Signal Handling
- `SIGHUP (1)`: 终端关闭nohup 可屏蔽
- `SIGINT (2)`: Ctrl+C 中断
- `SIGTERM (15)`: 优雅终止请求
- `SIGKILL (9)`: 强制终止(不可捕获)
## Common Issues
### rsync Error Code 20
表示进程被手动中断SIGINT/SIGTERM
```bash
# 使用 nohup 避免此问题
sudo nohup /usr/local/bin/rsync_backup.sh > /dev/null 2>&1 &
```
### Temporary Files Residue
强行停止 rsync 后,目标目录可能残留 `.` 开头的临时文件:
```bash
# 清理残留临时文件(确保无 rsync 进程运行)
sudo find /mnt/nas_backup/ -name ".*" -type f -delete
```
## Related Concepts
- [[增量备份]] — 进程管理确保备份任务安全执行
- [[Cron定时任务]] — 后台进程由 Cron 自动调度
- [[挂载点检查]] — 进程执行前的安全验证
## See Also
- [[永久挂载]] — 网络存储与进程执行的关系
---
title: "进程管理"
tags: [linux, process, backup, ubuntu]
date: 2026-04-26
---
# 进程管理 (Process Management)
## Definition
进程管理涵盖 Linux 系统中进程的创建、监控、控制和终止。在备份场景下,进程管理主要指如何安全地启动、监控和停止 rsync 备份进程。
## Starting Background Processes
### nohup (No Hang Up)
防止终端关闭导致进程被 SIGHUP 信号终止:
```bash
sudo nohup /usr/local/bin/rsync_backup.sh > /dev/null 2>&1 &
```
- `nohup`: 忽略挂起信号
- `> /dev/null 2>&1`: 重定向输出到空设备
- `&`: 后台运行
### screen / tmux (推荐)
创建持久化终端会话:
```bash
# 创建新会话
screen -S backup
# 运行脚本
sudo /usr/local/bin/rsync_backup.sh
# 脱离会话 (继续运行)
Ctrl + A + D
# 恢复会话
screen -r backup
```
**tmux 命令相同**,将 `screen` 替换为 `tmux`
## Stopping Processes
### SIGTERM vs SIGKILL
| Signal | Command | Behavior | Use Case |
|--------|---------|----------|----------|
| SIGTERM (15) | `killall rsync` | 优雅终止,允许进程完成当前写入并清理 | **首选**,防止数据损坏 |
| SIGKILL (9) | `killall -9 rsync` | 强制立即终止,无法清理 | 仅在进程卡死时使用 |
### Process Management Commands
```bash
# 查看 rsync 进程
ps aux | grep rsync
# 优雅停止所有 rsync 进程
sudo killall rsync
# 强制杀死(谨慎使用)
sudo killall -9 rsync
# 通过脚本名称停止
sudo pkill -f rsync_backup.sh
```
## Lock File Pattern
防止重复执行同一备份任务:
```bash
LOCKFILE="/tmp/rsync_backup.lock"
# 检查锁文件是否存在且进程存活
if [ -e ${LOCKFILE} ] && kill -0 `cat ${LOCKFILE}`; then
echo "备份任务已在运行中,跳过本次执行。"
exit
fi
# 创建锁文件(写入当前进程 PID
echo $$ > ${LOCKFILE}
# 脚本结束时清理锁文件
trap "rm -f ${LOCKFILE}" EXIT
```
## Signal Handling
- `SIGHUP (1)`: 终端关闭nohup 可屏蔽
- `SIGINT (2)`: Ctrl+C 中断
- `SIGTERM (15)`: 优雅终止请求
- `SIGKILL (9)`: 强制终止(不可捕获)
## Common Issues
### rsync Error Code 20
表示进程被手动中断SIGINT/SIGTERM
```bash
# 使用 nohup 避免此问题
sudo nohup /usr/local/bin/rsync_backup.sh > /dev/null 2>&1 &
```
### Temporary Files Residue
强行停止 rsync 后,目标目录可能残留 `.` 开头的临时文件:
```bash
# 清理残留临时文件(确保无 rsync 进程运行)
sudo find /mnt/nas_backup/ -name ".*" -type f -delete
```
## Related Concepts
- [[增量备份]] — 进程管理确保备份任务安全执行
- [[Cron定时任务]] — 后台进程由 Cron 自动调度
- [[挂载点检查]] — 进程执行前的安全验证
## See Also
- [[永久挂载]] — 网络存储与进程执行的关系