云网牛站
所在位置:首页 > Linux教程 > 在Ubuntu中添加诸如zookeeper这样的service

在Ubuntu中添加诸如zookeeper这样的service

2018-05-08 16:25:22作者:kut稿源:开源中国

我们总是想着把自己的应用在Ubuntu系统启动时自动启动,但是我们又不会写init.d中的shell脚本,所以,很多时候很无奈地只能手动。现在好了,我们有了systemd这样的东东,我们就很容易把事情给办了。

 

我们先了解一下systemd:

启动服务:

$ sudo service zookeeper start

重启服务:

$ sudo service zookeeper restart

关闭服务:

$ sudo service zookeeper stop

是不是很熟悉,看起来很不错的样子。

 

那么我们怎么把诸如zookeeper这样的程序加进systemd中呢?

首先,我们很了解一下systemd的配置放在哪里,一般情况下会在/etc/systemd/system中,在这个目录中,会有大量的wants和service。

其中wants表示依赖的基础服务,这些我们不用去管它。

 

而service则是要启动的应用服务,这些才是我们去关注的。一般情况下,每个要启动的服务都会以服务名加.service结尾,例如:

zookeeper.service

redis.service

 

每个.service文件用来配置一个service,它们是一个文本文件,格式为properties,下面就是一个zookeeper.service的例子:

[Unit]

# 服务说明

Description=zookeeper.service

# 在什么服务之后启动 - 服务依赖

After=network.target

[Service]

# 服务以什么方式启动,如果是shell脚本的方式,则Type=forking,否则不指定作何值(也就是去掉该配置项)

Type=forking

# 启动环境参数,比如说JAVA_HOME的指定,而这里指定zookeeper的日志目录为/tmp

Environment=ZOO_LOG_DIR=/tmp

Environment=JAVA_HOME=/usr/local/jdk18

# 动启命令

ExecStart=/opt/zookeeper/bin/zkServer.sh start

# 关闭命令

ExecStop=/opt/zookeeper/bin/zkServer.sh stop

# 重启命令

ExecReload=/opt/zookeeper/bin/zkServer.sh restart

[Install]

WantedBy=multi-user.target

 

好,现在我们把这个.service文件放进/etc/systemd/system中,然后我们还要告诉systemd我们加入了新的service:

$ sudo systemctl daemon-reload

 

如果要随系统自动启动,则还要加入下面的命令让systemd知道要自动启动该service:

# 注意,需要在服务名后加.service后缀

$ sudo systemctl enable zookeeper.service

 

当然你也可以关闭随系统启动这个功能:

$ sudo systemctl disable zookeeper.service

 

好,自此,你的service就加入到systemd中了,niubility吧?

 

如果是spring-boot这样的呢?怎么搞?

spring-boot官网的方法是搞不定的,至少我是搞不定,总是启动不起来,就只好用最原始的方法,自己写.service配置,这里贴一份我的配置文件,以供参考:

[Unit]

Description=service.infrastructure

# 设定在zookeeper启动之后再启动

After=zookeeper.service

[Service]

User=kut

ExecStart=/usr/bin/java -Dspring.profiles.active=development -jar /home/kut/service-infrastructure-provider-1.0.jar

SuccessExitStatus=143

[Install]

WantedBy=multi-user.target

 

整个配置重点在After配置这里,因为我使用的是dubbo,dubbo依赖于zookeeper的启动,所以要加这个配置,同样,这个配置也可以解决主机无法正常重启的问题。

 

相关主题

Ubuntu添加开机/关机执行脚本与service的理解

精选文章
热门文章