在Ubuntu 16.04 中将应用添加到系统服务中

来源:互联网 发布:剑网三怎么在淘宝买金 编辑:程序博客网 时间:2024/05/28 05:15

近来研究Linux,也自己装了一些软件,对用到的软件以及安装方法做一个简单的总结和点评。

第一类:Java/JDK这一类。这种软件主要就是一个开发环境,安装好之后不作为系统运行的进程,单纯的就是有这么个环境就好了,这一类软件通常可以以 tar.gz 的形式下载并解压缩,然后配置系统环境变量即可,这一点上基本上随便找一篇博客都可以得到比较理想的答案,官方文档也给出了答案,这个不再赘述;

第二类:MySQL类,这一类软件需要安装,而且它还有点带服务器的性质,使用的时候需要先启动这个服务,然后在通过client端去进行交互。那么此时就涉及到系统服务了。在Ubuntu中,关于系统服务我认为有两个方面:第一,将一个应用添加到系统服务;第二,配置服务的启动形式。
2.1)先说说如何将一个服务添加到系统中
目前我看到的主要方案都是chkconfig,但是很遗憾在 ubuntu 中 chkconfig 似乎并不太理想,那么如何添加服务呢?必须得说明,配置服务的本质其实就是将启动的链接放到 /etc/init.d/ 文件夹下面,然后启动的时候去执行相应的脚本即可,那么同样我们可以自己将启动的脚本做一个软链接放到这个文件夹下面,接下来系统如何检测到这一服务呢?这就要用到ubuntu自带的系统工具 systemctl 了,我觉得这个才是真正的与 chkconfig 相抗衡的工具,这里我给出一个贴图(来自 http://www.111cn.net/sys/linux/65797.htm , 如侵必删)
这里写图片描述
从上图中可以看出其实任何一个chkconfig的命令甚至service的命令 systemctl都是可以做到的,所以systemctl才是真正的boss。既然可以将启动的脚本放到 /etc/init.d/ 中,那么理论上就可以通过 service [ 软链接的名称 ] start这种方式启动,或者用上图对应的 systemctl 命令也可以;然而,当一个启动链接刚刚放进来的时候,系统如何意识到增加了一项服务呢? 这就要靠 systemctl daemon-reload 命令,假如没有这个命令,然后直接执行如: service [ 软链接的名称 ] start,系统会报错,提示启动失败,然后让用户执行 systemctl daemon-reload 这个命令;执行这个命令之后通过service就能检测到对应的服务;

2.2)设置服务的启动级别
这个我觉得咱们就可以借助一个强效的工具 —>>> sysv-rc-conf,这个工具可以可视化操作,简单明了,将启动的级别直接设置,避免人工的继续去设置各种链接。

当然,关于mysql的安装,其实不太推荐解压缩 tar.gz的这种方式,因为mysql还有编码等多种配置,如果自己去配置服务还要配置各种信息其实太繁琐,官方给出了基于apt的安装方式,非常简单,这里给出一个链接 http://www.cnblogs.com/EasonJim/p/7147787.html ,将MySQL官网的几种安装方法做了非常详细的描述,我觉得非常完善。

第三类:Tomcat
这一类软件就是纯服务器类了,安装完了之后如果说不配置到系统服务中去,那当然无所谓,直接配置一个环境变量 CATALINA_HOME 或者 TOMCAT_HOME (看个人习惯),然后 $CATALINA_HOME/bin/startup.sh 即可运行,这就完事儿了。但是,如果要将tomcat配置到服务器中,而tomcat的安装又是绿色安装,解压即可用,那么这个时候就需要用到上述所说的添加系统服务的方法了。本人也正是在安装这三个软件中总结出的这么一套流程,算是一个试错的过程,希望对大家有所帮助。最后附上 JDK -> MySQL -> Tomcat 的安装全过程。

① 安装JDK
1.1)下载jdk的tar.gz 包,我的是 jdk-8u151-linux-x64.tar.gz,并将其移动到安装目录;

cp jdk-8u151-linux-x64.tar.gz /usrcd /usr

1.2) 解压缩到指定路径,我的解压缩到 /usr/java 目录下,实际上是通过先解压缩,然后更改名字来实现的;

tar -zxvf jdk-8u151-linux-x64.tar.gzmv jdk1.8.0_151 java

1.3)配置系统环境变量

vim /etc/profile在文件的最后加入如下代码:export JAVA_HOME=/usr/javaexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin

到此java/jdk就算是安装好了;
到这里,就可以使用 javac -version 和 java -version 命令测试了 。

②安装mysql
之前我自己通过解压缩 tar.gz 文件安装了mysql,然后通过 安装目录/support-files/mysql.server start 的方式启动mysql服务,后来也尝试过建立链接,但是当时没有成功;而且系统默认的server和database编码是latin1,而解压缩之后我找不到 my.cnf配置文件,无法修改编码,最后我直接将 mysql删除了,然后用http://www.cnblogs.com/EasonJim/p/7147787.html 这篇博客中的第一种方法(apt安装),约等于是无脑安装,但是不得不说,效果真的很好,然后修改编码什么的也很简单,我这里直接上链接 http://www.cnblogs.com/ClassNotFoundException/p/6090357.html 。修改编码这个我也看了很多博客,基本上都是一个套路,这里的这个链接经过测试可行。

到这里,就可以使用 service mysql start/stop/status 了。

③ 安装tomcat
这次就有点挑战了,如果说mysql可以通过安装直接解决所有的问题,那么tomcat就只能自食其力了。
1)同样,首先下载 tar.gz 包,我的是 apache-tomcat-8.0.47.tar.gz ,依旧是解压缩,然后更名

cp apache-tomcat-8.0.47.tar.gz /usrcd /usrtar -zxvf apache-tomcat-8.0.47.tar.gzmv apache-tomcat-8.0.47 tomcat8

2)配置环境变量vim /etc/profile,这里直接贴出配置之后的总情况

export JAVA_HOME=/usr/javaexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport CATALINA_HOME=/usr/tomcat8export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

3)修改 $CATALINA_HOME/bin/catalina.sh文件,在该文件中靠前的部分加上 JAVA_HOME 和 CATALINA_HOME,如下图

JAVA_HOME=/usr/javaCATALINA_HOME=/usr/tomcat8

这里写图片描述

4)建立一个从 bin/catalina.sh 到 /etc/init.d/tomcat8 的链接,并且重载系统管理配置,

cd /etc/init.dln -s /usr/tomcat8/bin/catalina.sh ./tomcat8systemctl daemon-reload

到此为止,就可以使用 service tomcat8 start/stop/status 了。