阅读量:2
Debian下运行Golang编译生成的二进制文件的步骤
1. 编译Golang程序生成二进制文件
在Debian系统中,首先需要将Golang源代码编译为可执行的二进制文件。假设你的项目目录中有一个main.go文件(Go程序的入口文件),可通过以下命令编译:
go build -o myapp
go build:Golang的编译命令。-o myapp:指定输出的二进制文件名(默认以源文件名命名,如main)。
编译成功后,当前目录会生成myapp可执行文件。
2. 赋予二进制文件可执行权限
Debian系统遵循严格的权限管理,默认生成的二进制文件可能没有执行权限。需通过chmod命令添加执行权限:
chmod +x myapp
+x:为文件所有者、所属组及其他用户添加执行权限(若需限制权限,可调整为chmod 750 myapp,仅所有者可读、写、执行,组和其他用户仅可读)。
3. 直接运行二进制文件
赋予执行权限后,可通过以下命令运行程序:
./myapp
./:表示当前目录(Linux系统默认不搜索当前目录下的可执行文件,需显式指定路径)。
运行后,程序会执行其主函数逻辑(如输出“Hello, World!”或启动HTTP服务)。
4. 后台运行(可选,适用于服务类程序)
若程序是长期运行的服务(如Web服务器),建议使用nohup或systemd将其放入后台运行,避免终端关闭后程序终止。
方法一:使用nohup
nohup ./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
注意事项
- 防火墙设置:若程序监听端口(如HTTP服务的8080端口),需开放防火墙权限:
sudo ufw allow 8080 - 依赖问题:编译前确保所有依赖已通过
go get安装(如go get -u github.com/pkg/errors),避免编译失败。
以上就是关于“Debian下Golang编译生成的二进制文件如何运行”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm