在Ubuntu 16.04 中将应用添加到系统服务中
近來研究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,并將其移動到安裝目錄;
1.2) 解壓縮到指定路徑,我的解壓縮到 /usr/java 目錄下,實際上是通過先解壓縮,然后更改名字來實現的;
tar -zxvf jdk-8u151-linux-x64.tar.gz mv jdk1.8.0_151 java1.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 命令測試了 。
②安裝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 ,依舊是解壓縮,然后更名
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/bin3)修改 $CATALINA_HOME/bin/catalina.sh文件,在該文件中靠前的部分加上 JAVA_HOME 和 CATALINA_HOME,如下圖
JAVA_HOME=/usr/java CATALINA_HOME=/usr/tomcat84)建立一個從 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 中将应用添加到系统服务中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高仿小米日历
- 下一篇: Ubuntu安装anaconda做英文词