systemd管理服务

systemd管理服务案例

可执行二进制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cat > /etc/systemd/system/go-relay.service << 'EOF'
[Unit]
Description=Go Relay Service
After=network.target

[Service]
Type=simple
ExecStart=/root/cc/go-relay-linux-arm64
Restart=always
RestartSec=3
WorkingDirectory=/root/cc
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl restart go-relay
systemctl status go-relay

caddy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
cat > /etc/systemd/system/caddy.service << 'EOF'
[Unit]
Description=Caddy Web Server
Documentation=https://caddyserver.com/docs/
After=network.target

[Service]
Type=notify
User=root
Group=root
ExecStart=/usr/local/bin/caddy run --config /etc/caddy/Caddyfile
ExecReload=/usr/local/bin/caddy reload --config /etc/caddy/Caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
PrivateTmp=true
ProtectSystem=full

[Install]
WantedBy=multi-user.target
EOF

python fast api

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cat > /etc/systemd/system/uvicorn-app.service << 'EOF'
[Unit]
Description=Uvicorn ASGI Server
After=network.target

[Service]
Type=simple
ExecStart=/opt/myapp/venv/bin/uvicorn app:app --host 0.0.0.0 --port 8000
Restart=always
RestartSec=3
WorkingDirectory=/opt/myapp
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl restart uvicorn-app
systemctl status uvicorn-app

管理

1
2
3
systemctl daemon-reload
systemctl restart service
systemctl status service