在Debian系统中,首先需要将Golang源代码编译为可执行的二进制文件。假设你的项目目录中有一个main.go文件(Go程序的入口文件),可通过以下命令编译:
go build -o myapp go build:Golang的编译命令。-o myapp:指定输出的二进制文件名(默认以源文件名命名,如main)。myapp可执行文件。Debian系统遵循严格的权限管理,默认生成的二进制文件可能没有执行权限。需通过chmod命令添加执行权限:
chmod +x myapp +x:为文件所有者、所属组及其他用户添加执行权限(若需限制权限,可调整为chmod 750 myapp,仅所有者可读、写、执行,组和其他用户仅可读)。赋予执行权限后,可通过以下命令运行程序:
./myapp ./:表示当前目录(Linux系统默认不搜索当前目录下的可执行文件,需显式指定路径)。若程序是长期运行的服务(如Web服务器),建议使用nohup或systemd将其放入后台运行,避免终端关闭后程序终止。
nohupnohup ./myapp > output.log 2>&1 & nohup:忽略挂断信号(终端关闭后程序仍运行)。> output.log:将标准输出重定向到output.log文件。2>&1:将标准错误输出合并到标准输出。&:将进程放入后台。systemd(推荐,支持开机自启)创建systemd服务文件:
sudo nano /etc/systemd/system/myapp.service 写入以下内容(根据实际情况修改User、ExecStart路径):
[Unit] Description=My Go Application After=network.target [Service] User=your_username Group=your_groupname ExecStart=/path/to/your/myapp Restart=always [Install] WantedBy=multi-user.target 保存后执行以下命令启用并启动服务:
sudo systemctl daemon-reload sudo systemctl start myapp sudo systemctl enable myapp # 开机自启 查看服务日志:
sudo journalctl -u myapp -f sudo ufw allow 8080 go get安装(如go get -u github.com/pkg/errors),避免编译失败。