Centos7以普通用户启动zookeeper并加入开机自启动服务

我的环境的zookeeper目录为/opt/app/zk,假设我想以zookeeper用户启动

以下示例,在/etc/systemd/system/文件夹下创建一个启动脚本zookeeper.service

[Unit]
Description=zookeeper
After=syslog.target network.target

[Service]
Type=forking
Environment=ZOO_LOG_DIR=/opt/app/zk/log
ExecStart=/opt/app/zk/bin/zkServer.sh start
ExecStop=/opt/app/zk/bin/zkServer.sh stop
Restart=always
User=zookeeper
Group=zookeeper

[Install]
WantedBy=multi-user.target

以上脚本重点内容在于Environment=ZOO_LOG_DIR=/opt/app/zk/log

为什么要给ZOO_LOG_DIR赋值呢?

打开bin/zkEnv.sh,搜索ZOO_LOG_DIR,你会发现下面这段

if [ "x${ZOO_LOG_DIR}" = "x" ]
then
    ZOO_LOG_DIR="."

这段脚本的意思是说ZOO_LOG_DIR如果未指定,则它的值为你启动zookeeper时的当前目录,而bin/zkServer.sh启动时又是先调用zkEnv.sh,然后创建一个${ZOO_LOG_DIR}/zookeeper.out日志文件,如果此时刚好普通用户对该目录没有创建文件的权限,则启动时就会报错,具体错误就是zookeeper.out...permison denied

所以我们利用Environment=ZOO_LOG_DIR=/opt/app/zk/log这条语句主动给ZOO_LOG_DIR赋值(或者你直接在zkEnv.sh或zkServer.sh指定ZOO_LOG_DIR的值也是可以的),然后将zookeeper的目录赋权给普通用户:

chown -R zookeeper.zookeeper /opt/app/zk

启动zookeeper:

systemctl start zookeeper

加入开机启动:

systemctl enable zookeeper

OK,搞定

时间: 2024-10-13 02:18:12

Centos7以普通用户启动zookeeper并加入开机自启动服务的相关文章

supervisord安装,启动/关闭,添加开机自启动服务

centos7安装supervisord #yum -y install supervisor 安装路径/usr/bin/supervisord,配置文件/etc/supervisor.conf 一.手动启动/关闭 supervisor手动启动: #/usr/bin/supervisord -c /etc/supervisor.conf supervisor手动关闭: #/usr/bin/supervisorctl stop all    先关闭supervisor启动脚本,之后再关闭super

Linux Oracle服务启动&停止脚本与开机自启动

在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介绍一般而言如何启动oracle. 一.在Linux下启动Oracle 登录到CentOS,切换到oracle用户权限 # su – oracle 接着输入: $ sqlplus "/as sysdba" 原本的画面会变为SQL> 接着请输入SQL> startup 就可以正常的

Linux Oracle服务启动&停止脚本与开机自启动

Linux Oracle服务启动&停止脚本与开机自启动 http://www.cnblogs.com/mchina/archive/2012/11/27/2782993.html Linux Oracle服务启动&停止脚本与开机自启动

CentOS7下利用init.d启动脚本实现tomcat开机自启动

1.在/etc/init.d/目录下创建tomcat服务脚本文件 内容如下 #!/bin/bash # # tomcat startup script for the Tomcat server # # # chkconfig: 345 80 20 # description: start the tomcat deamon # # Source function library . /etc/rc.d/init.d/functions prog=tomcat JAVA_HOME=/usr/ja

java+tomcat+apache安装整合,启动/关闭,添加开机启动服务

安装java1.8 #yum update    服务器更新源码包 #rpm -qa |grep -E '^open[jre|jdk]|j[re|dk]'  搜索任何版本的已安装JDK组件 java-1.8.0-openjdk-headless-1.8.0.60-2.b27.el7_1.x86_64 pygobject2-2.28.6-11.el7.x86_64 pygobject3-base-3.8.2-6.el7.x86_64 java-1.8.0-openjdk-1.8.0.60-2.b2

centos7的单用户模式和救援模式修改root密码。

centos的常用重启命令:reboot.init 6 .shutdown -r nowcentos的常用关机命令:init 0.poweroff一:单用户模式1.首先重启一下linux,进入到选择操作系统界面.2.按屏幕提示按e,进入编辑模式,将ro改为rw,并添加红框中的内容.3.然后按提示,按ctrl+x启动单用户模式.然后j进入原系统目录sysroot下,修改root密码.LANG=en为设置显示为英文 chroot /sysroot/ passwd root LANG=en touch

CentOS7进入单用户模式重置ROOT密码

CentOS7进入单用户模式重置ROOT密码 CentOS 7 进入单用户方式和重置密码方式发生了较大变化,GRUB程序放置在GRUB2下,按键由b引导变成了ctrl+x引导. 重置密码主要有rd.break和init两种方法. rd.break方法: 1.启动的时候,在启动界面,相应启动项,内核名称上按"e": 2.进入后,找到linux16开头的地方,按"end"键到最后,输入rd.break,按ctrl+x进入: 3.进去后输入命令mount,发现根为/sys

centos7进入单用户模式

0.前言 今天给同事弄一个服务器自启动,但是那个服务是挂载模式,不是后台模式,所以在启动的时候一直进入不了登陆界面. 我当时心里知道挂载模式的服务弄自启动可能会导致前面说的情况,但是后来还是这么做了. 只有进入linux安全模式(也叫单用户模式)然后修改/etc/rc.d/rc.local文件 现在写这个博客主要是怕以后又遇到这种问题会忘记这类问题是怎么处理的 1.重启动系统进入选择内核的那个界面,选择一个内核然后按e 如下图所示: 2.然后进入了编辑界面 2.1 centos 7.4以前版本的

Centos 7关于rc.local脚本命令开机不执行及指定用户启动的解决方法

开机不启动 在实际生产场景中,我们喜欢在安装了一些软件服务后,将软件设置为开机自启动,设置为开机自启动有两种方法: 1)  设置为chkconfig,可以编写脚本,查看设置开机自启动的命令 –add表示添加程序自启动, --list表示查看. 以后的程序如果需要使用chkconfig开机自启动,那么需要在启动程序中加入三行: # chkconfig:2345 20 80 #description: Saves and restores system entropy pool for \ #