CentOS 7设置开机启动服务,添加自定义系统服务

 

由于版本的迭代,最近刚刚接触 CentOS 7,各种蛋疼 发现跟以前用的CentOS 6有着一些本质上的差别,连启动服务都不会启动了,一怒之下自己找资料,于是有了这篇文章...

 

 

 

1.建立服务文件

文件路径

vim /usr/lib/systemd/system/nginx.service

 

服务文件内容

[Unit]Description=nginx - high performance web serverAfter=network.target remote-fs.target nss-lookup.target

[Service]Type=forkingExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/usr/local/nginx/sbin/nginx -s stop

[Install]WantedBy=multi-user.target

 

文件内容解释

[Unit]:服务的说明

Description:描述服务

After:描述服务类别

 

[Service]服务运行参数的设置

Type=forking是后台运行的形式

ExecStart为服务的具体运行命令

ExecReload为重启命令

ExecStop为停止命令

PrivateTmp=True表示给服务分配独立的临时空间

注意:启动、重启、停止命令全部要求使用绝对路径

 

[Install]服务安装的相关设置,可设置为多用户

 

2.保存目录

754的权限保存在目录:

/usr/lib/systemd/system 

 

3.设置开机自启动

任意目录下执行

systemctl enable nginx.service 

 

4.其他命令

启动nginx服务

systemctl start nginx.service

设置开机自启动

systemctl enable nginx.service

停止开机自启动

systemctl disable nginx.service

查看服务当前状态

systemctl status nginx.service

重新启动服务

systemctl restart nginx.service

查看所有已启动的服务

systemctl list-units --type=service

 

 

5.CentOS7.0中systemctl启动关闭服务的用法

systemctl是主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。
systemctl可以列出正在运行的服务状态
systemd-cgls以树形列出正在运行的进程,它可以递归显示控制组内容。

启动/关闭、启用/禁用服务:
启动一个服务:systemctl start postfix.service
关闭一个服务:systemctl stop postfix.service
重启一个服务:systemctl restart postfix.service
显示一个服务的状态:systemctl status postfix.service

在开机时启用一个服务:systemctl enable postfix.service
在开机时禁用一个服务:systemctl disable postfix.service
查看服务是否开机启动:systemctl is-enabled postfix.service;echo $?

查看已启动的服务列表:systemctl list-unit-files|grep enabled

说明:启用服务就是在当前“runlevel”的配置文件目录/etc/systemd/system/multi-user.target.wants/里,建立/usr/lib/systemd/system里面对应服务配置文件的软链接;禁用服务就是删除此软链接。

 

 

posted @ 2017-05-26 12:52  后天星期天  阅读(12373)  评论(0编辑  收藏  举报