centos7 關於把安裝的服務加入開機啟動的問題
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 命令時會提示如下:
[[email protected] ~]# 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 關於把安裝的服務加入開機啟動的問題