58 lines
2.3 KiB
Desktop File
58 lines
2.3 KiB
Desktop File
[Unit]
|
|
Description=pay v2 收款服务(pangolin1 专用实例;crypto USDT + 哪吒(nezha) CNY 双渠道,MOCK 关)
|
|
Documentation=https://github.com/wangjia/pay
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
# 崩溃后不放弃自愈,但避免瞬时死循环耗尽资源(呼应 pangolin-agent.service 的自愈风格,
|
|
# 这里用有限重启而非 Restart=always,因 payd 不是"必须永不停"的网络自愈进程)。
|
|
# 注:StartLimitIntervalSec=/StartLimitBurst= 是 [Unit] 段指令(现代 systemd,
|
|
# 与 pangolin-agent.service 的用法一致),不是 [Service] 段——放错段会被忽略。
|
|
StartLimitIntervalSec=60
|
|
StartLimitBurst=5
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=payv2
|
|
Group=payv2
|
|
WorkingDirectory=/var/lib/pay-v2
|
|
EnvironmentFile=/etc/pay-v2/pay.env
|
|
ExecStart=/opt/pay-v2/payd
|
|
Restart=on-failure
|
|
RestartSec=3
|
|
|
|
# ── 加固 ─────────────────────────────────────────────────────────────────
|
|
# ProtectSystem=strict 把整个文件系统挂只读,仅 ReadWritePaths 列出的目录可写
|
|
# (sqlite 库文件 + 未来任何本地状态都落 /var/lib/pay-v2)。/etc/pay-v2 下的
|
|
# config.yaml / pay.env 只读挂载即可,不需要写权限。
|
|
# 仍需正常出网:连 TronGrid(crypto 查链)、哪吒网关(nezha 下单/查单/回调验签)、
|
|
# 回调 pangolin-server 的 /v1/webhook/pay——因此不设 PrivateNetwork=true,
|
|
# 也不把 RestrictAddressFamilies 收窄到只剩 AF_UNIX(仍留 AF_INET/AF_INET6)。
|
|
NoNewPrivileges=true
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
ReadWritePaths=/var/lib/pay-v2
|
|
PrivateTmp=true
|
|
ProtectKernelTunables=true
|
|
ProtectKernelModules=true
|
|
ProtectKernelLogs=true
|
|
ProtectControlGroups=true
|
|
ProtectClock=true
|
|
ProtectHostname=true
|
|
ProtectProc=invisible
|
|
RestrictSUIDSGID=true
|
|
RestrictRealtime=true
|
|
RestrictNamespaces=true
|
|
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
|
|
LockPersonality=true
|
|
RemoveIPC=true
|
|
# payd 是纯 Go 静态二进制(CGO_ENABLED=0 交叉编译,sqlite 走 modernc 纯 Go 实现,
|
|
# 无 cgo/JIT),历史上 MemoryDenyWriteExecute=true 对这类构建安全;若启动后
|
|
# journalctl 看到 SIGSYS/mmap 相关崩溃,先注释这一行排查。
|
|
MemoryDenyWriteExecute=true
|
|
CapabilityBoundingSet=
|
|
AmbientCapabilities=
|
|
UMask=0027
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|