[linux]systemd config for backend and frontend

#创建 Frontend 的 systemd 服务
#sudo vim /etc/systemd/system/backend.service
[Unit]
Description=Backend Service
After=network.target

[Service]
User=ops
WorkingDirectory=/data/testtoday/backend
ExecStart=/data/testtoday/backend/.venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
Restart=always
StandardOutput=append:/var/log/backend.log
StandardError=append:/var/log/backend.err.log

[Install]
WantedBy=multi-user.target


#sudo vim /etc/systemd/system/frontend.service
[Unit]
Description=Frontend Service
After=network.target

[Service]
User=ops
WorkingDirectory=/data/testtoday/frontend
Environment="PATH=/home/ops/.nvm/versions/node/v22.14.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ExecStart=/home/ops/.nvm/versions/node/v22.14.0/bin/npm run dev -- --host
Restart=always
StandardOutput=append:/var/log/frontend.log
StandardError=append:/var/log/frontend.err.log

[Install]
WantedBy=multi-user.target


#sudo systemctl daemon-reload
#sudo systemctl enable backend frontend
#sudo systemctl start backend frontend



#设定定时更新任务
#sudo vim /etc/systemd/system/backend_update.service
[Unit]
Description=Update and Restart Backend
After=network.target

[Service]
User=ops
WorkingDirectory=/data/testtoday/backend
ExecStart=/bin/bash -c 'source .venv/bin/activate && git fetch --all && git reset --hard origin/master && git pull origin master&& uv sync && sudo systemctl restart backend'
StandardOutput=append:/var/log/backend_update.log
StandardError=append:/var/log/backend_update.err.log

[Install]
WantedBy=multi-user.target

#sudo vim /etc/systemd/system/backend_update.timer
[Unit]
Description=Schedule Backend Updates
Requires=backend_update.service

[Timer]
OnCalendar=*-*-* 09,12,21,00:00
Persistent=true

[Install]
WantedBy=timers.target

#sudo systemctl daemon-reload
#sudo systemctl enable backend_update.timer
#sudo systemctl start backend_update.timer

# sudo vim /etc/systemd/system/frontend_update.service
[Unit]
Description=Update and Restart Frontend
After=network.target

[Service]
User=ops
WorkingDirectory=/data/testtoday/frontend
ExecStart=/bin/bash -c 'source /home/ops/.nvm/nvm.sh && git fetch --all && git reset --hard origin/master && git pull origin master && npm ci && sudo systemctl restart frontend'
StandardOutput=append:/var/log/frontend_update.log
StandardError=append:/var/log/frontend_update.err.log

[Install]
WantedBy=multi-user.target

#sudo vim /etc/systemd/system/frontend_update.timer
[Unit]
Description=Schedule Frontend Updates

[Timer]
OnCalendar=*-*-* 09,12,21,00:00
Persistent=true

[Install]
WantedBy=timers.target

#sudo systemctl daemon-reload
#sudo systemctl enable frontend_update.timer
#sudo systemctl start frontend_update.timer
posted @ 2025-03-31 21:36  夜歌乘年少  阅读(15)  评论(1)    收藏  举报