CentOS7 通过systemd 添加开机重启服务

现在越来越多的环境采用 CentOS 7 作为基础配置,特别是 Hadoop生态 如果要测试或部署环境需要启动很多组件(zookeeper、kafka、redis等等),如下内容是在操作系统层实现开机启动,这样运维管理人员无需再每次硬件设备断电或计划内重启时去检查,从无聊的频繁工作中解脱出来。

Centos7的服务systemctl 脚本一般存放在:/usr/lib/systemd , 目录下又有user和system之分:

/usr/lib/systemd/system   # 系统服务,开机不需要用户登录就能运行的程序(相当于开机自启)

/usr/lib/systemd/user     # 用户服务,需要登录后才能运行的程序

第一步:在 /usr/lib/systemd/system 目录下新建一个服务文件(例如 zookeeper.service)

cd /usr/lib/systemd/system

touch zookeeper.service

使用 vi 工具编辑zookeeper.service文件,并添加以下内容:

[Unit]

Description=Zookeeper Service

After=network.target

 

[Service]

Type=forking

User=icop     #这是你期望那个用户启动该业务的用户名,但需要该用户对/home/icop/app/zookeeper/bin/zkServer.sh有执行权限

Group=whdata  #是你期望那个用户启动该业务的用户组名

SyslogIdentifier=icop #标示启动进程的名字

Environment=ZOO_LOG_DIR=/home/icop/app/zookeeper/logs  #这个ZOO_LOG_DIR参数必须要给,否则zookeeper启动有问题

Environment=PATH=/usr/local/jdk1.8.0_181/bin:/usr/local/jdk1.8.0_181/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin

ExecStart=/home/icop/app/zookeeper/bin/zkServer.sh start

ExecStop=/home/icop/app/zookeeper/bin/zkServer.sh stop

ExecReload=/home/icop/app/zookeeper/bin/zkServer.sh restart

 

[Install]

WantedBy=multi-user.target

第二步:装载 

root用户 使用 "systemctl daemon-reload" 命令将 zookeeper.service 加入Unit。

第三步:设置开机启动

root 用户使用 "systemctl enable zookeeper.service" 命令将该服务设置为开机启动。

第四步:验证

root 用户使用"systemctl list-unit-files" 命令列出所有 Unit 服务是否开机启动

posted on 2019-08-24 09:22  罗烨鑫  阅读(829)  评论(0编辑  收藏  举报

导航