今天项目上线。从打包到部署一步到位。上一个文章吐槽了打包的种种。这个文章主要是linux下部署。
ecs服务器一般都是linux系统不用多说了。平时都是windows的我还是觉得挺新鲜。好多命令都要现去百度查询。在这做个汇总。
首先从最基本开始讲解(都是我用到的才会在此说出。可能不全):
输入账号密码就不说了。我这里是用xshell连接的。
注意:linux命令要小写哦!
1,Linux运行jar包:
1.1,java -jar xx.jar --server.port=自定义。
因为打好的包在控制台运行如果不指定都会用tomcat默认的端口(8080/9000)。这样就很容易被占用或者多个服务肯定是起不来。所以要指定端口号。
1.2,java -jar xxxxx.jar
当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
1.3、java -jar xxxxx.jar &
当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
1.4、nohup Java -jar xxxxxx.jar &
意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行(这个是需要权限的。不见得能一次调通)
2,查看端口:
2.1,netstat -anp |grep 端口号(例如:netstat -anp |grep 3306)
监控状态为LISTEN表示已经被占用。
2.2,netstat -nultp(此处不用加端口号)
该命令是查看当前所有已经使用的端口情况。
2.3,netstat -tln
查找被占用的端口(和上面netstat -nultp的区别是这个不显示占用端口的 PID和Program name ).
2.4,netstat -tln | grep 端口号
查找某端口的状态(同理,和上面netstat -nultp |grep 端口号 的区别是这个不显示占用端口的 PID和Program name )
3,关于Linux中文件的编辑和退出(我本来只是想改个redis密码,结果被忽悠到这里来了。各种坑了好久 ):
在linux中,vim编辑器是系统自带的文本编辑器。我就是进入VIM编辑器后,无法退出以致强抽关机两次才痛定思痛。要学会处理。
3.1,进入VIM编辑器(可是是新建也可以是修改)命令为:vim /usr/local/redis.conf
如果这个文件,以前是没有的,则为新建,则下方有提示为新文件;如果文件已存在,则没有提示。进入编辑器后,我们按大写的”I(i)“,即切换到“插入”状态。就可以通过上下左右移动光标,或空格、退格及回车等进行编辑内容了,和WINDOWS是一样的了。
3.2,退出编辑器又分为4种情况:保存退出、正常退出、不保存退出及强制退出。
1)保存退出:按键盘左上角的"ESC",直接按shift+zz,或者切换到大写模式按ZZ,就可以保存退出。
或者在最后输入命令时,直接输入"x",也是一样的,即X=WQ(这个我没试过。不过好多地方说这么做也可以)。
或者按键盘左上角的"ESC",再输入“冒号”,即":"(不需双引号),再输入WQ,再回车,就保存退出了(也没试过)。
2)正常退出:正常退出有个前提条件是:打开的文本文件在内容上没有被改动过。按了ESC后再输入冒号,在输入命令时,直接输入"q"。
3)不保存退出:修改了一些地方,但是不想要改动,这时候就非常需要不保存退出了。先按ESC,再输入冒号,在输入命令时,直接输入"q!"。
4)强制退出:我所查找到的资料上说这个是不应该做的操作,因为很操蛋!但是我本人是没操作过的。这里也记录一下吧。万一以后用到了呢。先按ESC,再按冒号,在输入命令时,直接输入"!"。据说这个退出后会有提示。我没实操所以就不多说了。
4,查看进程和关闭进程:
今天又遇到一个贼尴尬的问题。劈里啪啦运行了好几个jar包。然后控制台开始刷错误。半分钟一刷的那种。所以最后手忙脚乱中用出了绝招:关机。对的。我把xshell重启了。但是觉得只要有问题肯定就有解决办法。总不能一直关机重启吧,又不是网管(这里没任何歧视,只不过有个梗说网管量大绝招:重启,换机器)。于是又在实测中找到了解决办法,那就是查看进程和杀死进程。
4.1,ps aux|grep 启动的jar包名 (例如我的,ps aux | grep eureka.jar)
这个命令将会看到此jar的进程信息。注意这里实测有个结论:如果你的jar正在运行中,控制台会打印出两个数据。如果只打印出一条数据则说明你这个jar没在运行。
然后根据你打印出来的数据可以找到运行这个jar的pid。因为这个有点小坑所以我截图说明一下哪个是我们所需要的pid:
这里要注意,我们要找的是java -jar那行的 第一个数:我这里就是13487。因为我之前在百度上找到的也是这两行数据,但是顺序是相反的。人家的是第二行才是pid的所在。这个也小小的坑了我一下。附上我看的网页的连接,如果大家的和我的不一样可以参考那个前辈的做法:
4.2,kill -9 pid 杀掉运行中的程序(pid是想杀掉程序的pid。我这里是13487)
5,脚本的编写:
这里说一下编写脚本的规定吧。规定就是约定俗成的东西。不是说你不照着做就会报错或怎么样。但是是为了以后的维护发展和利人利己。
规定一:凡是自定义的脚本建议放到/usr/local/sbin/目录下,这样做的目的是,一来可以更好的管理文档;二来以后接管你的管理员都知道自定义脚本放在哪里,方便维护。
规定二:Shell脚本通常都是以.sh 为后缀名的,这个并不是说不带.sh这个脚本就不能执行,只是大家的一个习惯而已。所以,以后你发现了.sh为后缀的文件那么它一定会是一个shell脚本了。
具体脚本编写的步骤:
5.1,创建:新建一个.sh文件,touch serstart.sh
5.2,(这里有个命令靠参考~~~)chmod -R 777 * 表示对当前目录及目录下所有的文件赋予可读可写可执行权限。因为我为了打印错误日志所以加上这个了。根据具体需求你们可以参考要不要加。
5.3,编辑刚刚创建的脚本文件,例如:vi serstart.sh
5.4,然后就是在脚本文件中写指令了~~~顺便附上我写的脚本,以供参考。(如果在编写上有问题可以找我上面的vim编写)
目前为止,服务器上的程序已经跑通。所以这个纪念或者教育或者学习的帖子也就到这里了。中间大大小小的坑没少遇到。在此特别感谢好多朋友给了我贼多的帮助~~~就不点名了。也希望萌新们看了这个贴子能有点帮助。薪火相传嘛~~然后日后有什么补充我会继续编辑的。
再说个题外话。有个朋友很理解不了我坚持写贴子这件事,觉得我写的很小白而且没啥用。其实我想说一方面我用最通俗墨迹的言语表达了一个知识或者技能,一百个人看99个觉得墨迹但是对一个人有帮助这就值得。另外我个人一直有记录的习惯。比较好记性不如烂笔头。只不过以前我习惯于用笔记在笔记本上。但是前一段时间因为工作所以那些笔记本都留在了家里。现在有的用得到的知识点或者喜欢的思维模式什么的,要么重新整理要么凭感觉来。其实这样挺不好的。遗憾。但是现实又是就这样,千里路途我做不到背着几十斤的书和笔记。所以我觉得把知识和过程写在网上,方便了别人也方便了自己。我很喜欢这个信息爆炸的时代.
哎,好了,鸡汤就到这里了。
全文手打~~这么不容易的写个文~~如果你觉得用到了~留个言点个赞转个发什么的啊~