在 Linux 上部署一个 C++ 服务,通常包含:开发/编译 → 可执行文件 → 后台运行 → 进程管理 → 日志/监控 → 开机自启。下面我按实战流程给你一个完整指南。
# Ubuntu / Debian
sudo apt update
sudo apt install -y build-essential gdb cmake
# CentOS / Rocky
sudo yum groupinstall "Development Tools"
uname -m
# x86_64 / aarch64
g++ -O2 -std=c++17 -o my_server main.cpp
cmake_minimum_required(VERSION 3.10)
project(my_server)
set(CMAKE_CXX_STANDARD 17)
add_executable(my_server main.cpp)
mkdir build && cd build
cmake ..
make -j
./my_server
nohup ./my_server > server.log 2>&1 &
查看:
ps -ef | grep my_server
tail -f server.log
⚠️ 不推荐生产环境长期使用
sudo vim /etc/systemd/system/my_server.service
[Unit]
Description=My C++ Server
After=network.target
[Service]
ExecStart=/opt/my_server/my_server
WorkingDirectory=/opt/my_server
User=appuser
Restart=always
RestartSec=3
StandardOutput=append:/var/log/my_server.log
StandardError=append:/var/log/my_server.log
[Install]
WantedBy=multi-user.target
sudo mkdir -p /opt/my_server
sudo cp my_server /opt/my_server/
sudo useradd -r -s /bin/false appuser
sudo systemctl daemon-reload
sudo systemctl enable my_server
sudo systemctl start my_server
systemctl status my_server
journalctl -u my_server -f
FROM ubuntu:22.04
WORKDIR /app
COPY my_server .
EXPOSE 8080
CMD ["./my_server"]
docker build -t my_server .
docker run -d --name myserver -p 8080:8080 my_server
sudo ufw allow 8080
或 firewalld:
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
| 类型 | 示例 |
|---|---|
| HTTP 服务 | Drogon / Pistache |
| RPC 服务 | gRPC |
| 消息服务 | ZeroMQ / RabbitMQ |
| 游戏服务 | 自研 TCP |
如果你愿意,可以告诉我:
我可以直接给你一套可复制的部署模板。