学Linux - 上红联!
Linux系统教程_红联Linux门户
Linux帮助

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

时间:2017-11-06来源:linux网站 作者:gaara13562
近来研究Linux,也自己装了一些软件,对用到的软件以及安装方法做一个简单的总结和点评。
 
第一类:Java/JDK这一类。这种软件主要就是一个开发环境,安装好之后不作为系统运行的进程,单纯的就是有这么个环境就好了,这一类软件通常可以以 tar.gz 的形式下载并解压缩,然后配置系统环境变量即可,这一点上基本上随便找一篇文章都可以得到比较理想的答案,官方文档也给出了答案,这个不再赘述;
 
第二类:MySQL类,这一类软件需要安装,而且它还有点带服务器的性质,使用的时候需要先启动这个服务,然后在通过client端去进行交互。那么此时就涉及到系统服务了。在Ubuntu中,关于系统服务我认为有两个方面:第一,将一个应用添加到系统服务;第二,配置服务的启动形式。
1)先说说如何将一个服务添加到系统中
目前我看到的主要方案都是chkconfig,但是很遗憾在 ubuntu 中 chkconfig 似乎并不太理想,那么如何添加服务呢?必须得说明,配置服务的本质其实就是将启动的链接放到 /etc/init.d/ 文件夹下面,然后启动的时候去执行相应的脚本即可,那么同样我们可以自己将启动的脚本做一个软链接放到这个文件夹下面,接下来系统如何检测到这一服务呢?这就要用到ubuntu自带的系统工具 systemctl 了,我觉得这个才是真正的与 chkconfig 相抗衡的工具,这里我给出一个贴图:
在Ubuntu 16.04中将应用添加到系统服务中
从上图中可以看出其实任何一个chkconfig的命令甚至service的命令 systemctl都是可以做到的,所以systemctl才是真正的boss。既然可以将启动的脚本放到 /etc/init.d/ 中,那么理论上就可以通过 service [ 软链接的名称 ] start这种方式启动,或者用上图对应的 systemctl 命令也可以;然而,当一个启动链接刚刚放进来的时候,系统如何意识到增加了一项服务呢? 这就要靠 systemctl daemon-reload 命令,假如没有这个命令,然后直接执行如: service [ 软链接的名称 ] start,系统会报错,提示启动失败,然后让用户执行 systemctl daemon-reload 这个命令;执行这个命令之后通过service就能检测到对应的服务;
2)设置服务的启动级别
这个我觉得咱们就可以借助一个强效的工具 —>>> sysv-rc-conf,这个工具可以可视化操作,简单明了,将启动的级别直接设置,避免人工的继续去设置各种链接。
当然,关于mysql的安装,其实不太推荐解压缩 tar.gz的这种方式,因为mysql还有编码等多种配置,如果自己去配置服务还要配置各种信息其实太繁琐,官方给出了基于apt的安装方式,非常简单,这里给出一个链接,将MySQL官网的几种安装方法做了非常详细的描述,我觉得非常完善。
 
第三类:Tomcat
这一类软件就是纯服务器类了,安装完了之后如果说不配置到系统服务中去,那当然无所谓,直接配置一个环境变量 CATALINA_HOME 或者 TOMCAT_HOME (看个人习惯),然后 $CATALINA_HOME/bin/startup.sh 即可运行,这就完事儿了。但是,如果要将tomcat配置到服务器中,而tomcat的安装又是绿色安装,解压即可用,那么这个时候就需要用到上述所说的添加系统服务的方法了。本人也正是在安装这三个软件中总结出的这么一套流程,算是一个试错的过程,希望对大家有所帮助。最后附上 JDK -> MySQL -> Tomcat 的安装全过程。
1.安装JDK
1.1)下载jdk的tar.gz 包,我的是 jdk-8u151-linux-x64.tar.gz,并将其移动到安装目录;
cp jdk-8u151-linux-x64.tar.gz /usr
cd /usr
1.2)解压缩到指定路径,我的解压缩到 /usr/java 目录下,实际上是通过先解压缩,然后更改名字来实现的;
tar -zxvf jdk-8u151-linux-x64.tar.gz
mv jdk1.8.0_151 java
1.3)配置系统环境变量
vim /etc/profile
在文件的最后加入如下代码:
export JAVA_HOME=/usr/java
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
到此java/jdk就算是安装好了;
到这里,就可以使用 javac -version 和 java -version 命令测试了 。
2.安装mysql
之前我自己通过解压缩 tar.gz 文件安装了mysql,然后通过 安装目录/support-files/mysql.server start 的方式启动mysql服务,后来也尝试过建立链接,但是当时没有成功;而且系统默认的server和database编码是latin1,而解压缩之后我找不到 my.cnf配置文件,无法修改编码,最后我直接将 mysql删除了,然后用上面文章链接中的第一种方法(apt安装),约等于是无脑安装,但是不得不说,效果真的很好,然后修改编码什么的也很简单。修改编码这个我也看了很多文章,基本上都是一个套路,可行方案在下文提供[附]。
到这里,就可以使用 service mysql start/stop/status 了。
3.安装tomcat
这次就有点挑战了,如果说mysql可以通过安装直接解决所有的问题,那么tomcat就只能自食其力了。
1)同样,首先下载 tar.gz 包,我的是 apache-tomcat-8.0.47.tar.gz ,依旧是解压缩,然后更名
cp apache-tomcat-8.0.47.tar.gz /usr
cd /usr
tar -zxvf apache-tomcat-8.0.47.tar.gz
mv apache-tomcat-8.0.47 tomcat8
2)配置环境变量vim /etc/profile,这里直接贴出配置之后的总情况
export JAVA_HOME=/usr/java
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CATALINA_HOME=/usr/tomcat8
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
3)修改 $CATALINA_HOME/bin/catalina.sh文件,在该文件中靠前的部分加上 JAVA_HOME 和 CATALINA_HOME,如下图
JAVA_HOME=/usr/java
CATALINA_HOME=/usr/tomcat8
在Ubuntu 16.04中将应用添加到系统服务中
4)建立一个从 bin/catalina.sh 到 /etc/init.d/tomcat8 的链接,并且重载系统管理配置
cd /etc/init.d
ln -s /usr/tomcat8/bin/catalina.sh ./tomcat8
systemctl daemon-reload
到此为止,就可以使用 service tomcat8 start/stop/status 了。
 
附:Ubuntu 16.04下修改MySQL默认编码
在Ubuntu 下配置 MySQL 的字符编码。安装完 MySQL 后,系统默认的字符编码是 latin1 ,输入的是中文,可是输出却是一堆乱码。现在要做的就是把 MySQL的默认字符编码设置为支持中文的编码,如 GBK、GB23112、等。
首先进入MySQL存放配置文件的目录
~#cd  /etc/mysql/
执行ls,查看下此文件夹下的文件
~#ls
会发现有个文件是my.cnf,这个文件是mysql的配置文件
用vim打开此文件
~#vi  my.cnf
打开my.cnf后,会发现在此文件的最后有两行(此配置文件又引用了其他的两个配置文件,我们需要修改的是mysqld.cnf ,这是mysql服务端基础配置文件 ):
!includedir /etc/mysql/conf.d  
!includedir /etc/mysql/mysql.conf.d
用vim打开/etc/mysql/mysql.conf.d/mysqld.cnf文件(如果提示不可编辑的话,可以切换账号为root)
~#vi /etc/mysql/mysql.conf.d/mysqld.cnf
打开文件后,在[mysqld] 的skip-external-locking下,添加character-set-server=utf8
......  
[mysqld]  
......  
skip-external-locking  
character-set-server=utf8  
......
下面,我们还要去设置客户端的默认编码,我们现在进入mysql客户端配置文件目录
~#cd /etc/mysql/conf.d  
~#ls
ls后,发现有个文件mysql.cnf
用vi打开,并在[mysql]下插入一行:default-character-set=utf8
~#vi mysql.cnf 
[mysql]  
default-character-set=utf8  
最后,重启mysql 服务
~#service mysql restart  
进入mysql,用\s查看是否修改成功
mysql>\s  
......  
Server     characterset: utf8  
Db         characterset: utf8  
Client     characterset: utf8  
Conn.      characterset: utf8  
......
 
本文永久更新地址:http://www.linuxdiyf.com/linux/32893.html
------分隔线------