首页 > 其他 > 详细

centos7 关于把安装的服务加入开机启动的问题

时间:2017-08-17 21:19:15      阅读:2241      评论:0      收藏:0      [点我收藏+]

centos7中 把服务加入开机自动启,比如把mysql加入开机自启动,需要在/usr/lib/systemd/system/这个目录下编写mysqld.service文件,具体参照网上资料或之前整理的资料,其他服务也一样。但是mysqld.service 配置文件中 的PrivateTmp=true ,需要改成false,否则每次服务器重启后,虽然mysql服务起来了,进程也起来了,但是连不上 ,如果mysql的配置文件中指定的socket文件路径是/tmp/mysql.sock 的话 会提示找不到/tmp/mysql.sock 文件,原因就是这里设置PrivateTmp=true,在服务启动时会在/tmp目录下生成类似systemd-private-433ef27ba3d46d8aac286aeb1390e1b-apache.service-RedVyu的文件夹,用于存放mysql的临时文件,mysql.sock 文件也被放到这里了,才导致找不到 /tmp/mysql.sock 文件。但是做软连接也不行,因为 每次服务器重启 后 生成的类似systemd-private-433ef27ba3d46d8aac286aeb1390e1b-apache.service-RedVyu的文件夹也会变。

mysqld.service 配置文件如下:


[Unit]

Description=mysqld

After=network.target


[Service]

Type=forking

ExecStart=/etc/init.d/mysqld start

ExecReload=/etc/init.d/mysqld restart

ExecStop=/etc/init.d/mysqld  stop

PrivateTmp=false


[Install]

WantedBy=multi-user.target


如果之前有创建过mysqld.service 文件,当使用chkconfig --add mysqld 后 再使用 chkconfig --list 是查看不到有mysql的这一列的,当使用 chkcnfig mysqld on  命令时会提示如下:

[root@localhost ~]# chkconfig mysqld on

注意:正在将请求转发到“systemctl enable mysqld.service”。

Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.


这就是相当于转为centos7的方法将服务加入启动的。会在/etc/systemd/system/multi-user.target.wants 目录下创建一个软连接 ,链接到/usr/lib/systemd/system/mysqld.service。

如果不想使用centos7这种方法把服务加入自启的话,可以将之前创建的mysqld.service 删掉,然后再执行 chkconfig --add mysqld ,chkconfig mysqld on ,再使用chkconfig --list 查看就能看到mysql了


重启服务器后 mysql正常启动,正常生产/tmp/mysql.sock 文件。能够正常连接


centos7 关于把安装的服务加入开机启动的问题

原文:http://10892987.blog.51cto.com/10882987/1957170

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!