技术标签: # Go语言学习之路 golang linux 服务器
众所周知,go语言是可以直接将代码编译为二进制可执行文件的,因此服务器上不需要准备go的环境,仅服务端的部署也非常的简单,对比java真的是太便捷了。下面我就来简单分享一下,怎么实现部署。
首先,你需要一个个人的服务器,这个默认都有了哈,然后在项目本地运行无误后,打开终端,输入go env
查看你的go的环境设置。
在编译之前,我们需要设置两个个值
set GOARCH=amd64
set GOOS=linux
也就是上图圈起来的两个,GOOS的值设置的是编译的文件是什么系统下的可执行文件,一般服务器都是linux的,不一样则按需修改,set命令设置一下。
完成后在goland项目中打开终端,或者在终端进入项目文件夹进行编译命令:
go build xx.go
(其实直接 go build也可以,一般来讲项目上只会留一个main的执行文件)
编译完成后,就会在文件夹下生成一个linux可执行文件(呐,如果GOOS设置为windows则是windows下可执行文件)
我们拿到可执行文件后,可以通过xftp将文件放到linux服务器上,建议自己建一个专门放项目的文件夹,然后打开xshell链接服务器,进入放可执行文件的文件夹(注意:如果你的程序有一些需要加载的静态文件,配置文件,那么我建议把整个项目文件也放到服务器的项目文件夹里一份,不然会找不到)
chmod 777 文件名
运行文件前我们先了解一些命令
直接 ./文件名 eg: ./main
&命令,加在最后面 eg: ./mian &
bohup命令 eg: nohup ./main &
jobs命令 查看当前终端后台运行的任务
ps命令 查看当前的所有进程
eg: ps -aux | grep "test.sh"
#a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
kill命令:结束进程
通过ps命令查看进程号PID,然后执行 kill %PID
kill -9 pid 强制关闭
netstat -anp |grep 端口号
知道上面的命令后我们就可以启动我们的程序了
> 号是linux里的重定向符号
>start.log 表示将程序输出内容(也就是下面命令的1)写入start.log文件
2>&1 表示把标准错误重定向为和标准输出一样
也就是把2的内容输入到1,而因为1的内容已经重定向到start.log
所以命令结果就是 错误和标准输出都会写到>start.log 文件
10164 程序运行的pid,我们可以通过上面的命令查看运行情况
发现程序平稳运行,我们可以检查一下端口情况
确认没有问题后,打开服务器控制台,将程序端口(示例是8080)设置为防火墙开放端口就OK了!
那如果想更新线上的程序的话,只需要再次走几步就可以
再次go build
新的文件就会覆本地旧的文件,
我们可以通过ps -ef|grep main
命令(mian是你的控制性文件名),找到程序运行进程的pid
找到后kill掉它
kill -9 10164
然后再次查看端口号,看看是否kill掉了它,如果出现图上的
[1]+ Killed nohup ./main > start.log 2>&1
则是还没有完全干掉它,我们稍等一会,再看一下就好了
这一步直接在xftp上完成就可以,覆盖文件后记得再次修改文件权限
替换文件完成后,再次进行之前执行的操作就完成了!
(1)fg命令
功能:将后台中的命令调至前台继续运行
如果后台中有多个命令,可以先用jobs查看jobnun,然后用 fg %jobnum 将选中的命令调出。
(2)Ctrl + z 命令
功能:将一个正在前台执行的命令放到后台,并且处于暂停状态
(3)bg命令
功能:将一个在后台暂停的命令,变成在后台继续执行
如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum 将选中的命令调出继续执行。
Stat状态解释:
文章浏览阅读238次。PHP的getimagesize读取远程文件,使用的方法本质上跟file_get_contents一样,所以都会出现非常耗时的情况。_php getimagesize远程图片
文章浏览阅读5.7k次,点赞7次,收藏17次。计算机应用技术比较偏向软件方向,培养掌握计算机应用专业必要的基础理论、常用计算机软件操作和编程语言,培养目标是具有较强实践技能的高级计算机应用型人才。专业课主要有:计算机软硬件技术基础、Linux操作系统、数据库系统SQL、数据结构与C程序设计、计算机网络原理、高级语言汇编、Java语言程序设计、图形图像应用处理(PhotoShop)、微机原理与接口技术、C语言、数据结构、操作系统、平面设计、VB..._计算机网络红人计算机应用区别
文章浏览阅读916次,点赞18次,收藏13次。是 Docker 官方维护的一个服务,用于存储和分发 Docker 官方镜像,包括一些常见的操作系统、编程语言运行时环境等。通过使用 Docker 官方镜像注册表,用户可以方便地访问和获取到官方维护的镜像,用于构建、运行和部署他们的容器化应用程序。kube-flannel是一个在Kubernetes集群中用于网络通信的网络解决方案。kube-flannel使用了一个虚拟的overlay网络,它允许Kubernetes节点之间的容器在不同的主机上进行通信,同时保持网络的简单性和性能。_docker容器regpositories网址出不来
文章浏览阅读805次。Two dimensional neuron modelsReduction to two dimensionsGeneral approach_phase plane analysis matlab
文章浏览阅读85次。转载地址:http://blog.csdn.net/fengkuanghun/article/details/7878862如何实现将View向上平移自身高度一半的距离?TranslateAnimation translate = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, ...
文章浏览阅读9.6k次,点赞3次,收藏9次。Unity Hub for Mac 安装_unity hub for mac
文章浏览阅读2.5k次,点赞11次,收藏64次。前段时间,博主在帮忙朋友给一个国营单位做的一个项目中,在上线的前期,客户要求检测漏洞,因此找到了专业的测评公司,测出来好多漏洞,其中就有xss攻击,我讲自己处理的方式分享给大家,便于大家少走弯路。package com.yl.filter;import java.io.BufferedReader;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.InputStreamReader;i_解决xss过滤符合
文章浏览阅读1.5k次。微信小程序:上传图片报:当前系统代理不是安全代理,是否信任?最近在做表单上传的功能,期中涉及到图片的上传,小谷的思路是将图片存到服务器,路径存到数据库中,但是发现wx.request提交数据没有问题,但是wx.upfile就出现了上面的问题。当前系统代理不是安全代理,是否信任?。之后小谷百度了,其中主要是两个问题1.重装系统,(不能根本解决问题,二次开机可能还会出现)2.删除中策表中的文件..._代理微信不能发图片
文章浏览阅读129次。该文章汇总了Maven2.0中常用的一些Property, 所以这些properties都是从Maven的官方文档和Maven的用户邮件中搜集过来的. 注意, 因为所有的pom.*属性在Maven3中已经不推荐了, 所以下面只介绍project.* Build-in Properties: 内带的属性${basedir}, pom.xml文件所在的目录${version}, ..._maven built-in
文章浏览阅读561次。EasyPlayer性能稳定、播放流畅,可支持的视频流格式有RTSP、RTMP、HLS、FLV、WebRTC等,具备较高的可用性。_easyplayer有声音无画面
文章浏览阅读900次,点赞17次,收藏14次。针对以上面试题,小编已经把面试题+答案整理好了。
文章浏览阅读1.3k次,点赞4次,收藏8次。虽然Zabbix Server管理页面提供了中文模式,但是在具体的模板监控项和触发器警告等等还是全部英文,所以这里说下这些汉化方法。Zabbix Server服务端默认使用的是Mariadb数据库,采用API修改监控项触发器的方法。如有翻译错误欢迎评论指正。_zabbix汉化