Linux自定义系统服务

Linux系统服务,又称守护程序,在启动时自动加载并管理。CentOS7开始使用systemd替代daemon,使用systemctl命令管理服务。文章介绍了如何查看和管理服务,以及如何将非系统服务如Nginx配置为开机自启动服务,包括编写服务文件和服务参数的详细设置。
摘要由CSDN通过智能技术生成


一. Linux系统服务

Linux 系统服务有时也称为守护程序,是在Linux启动时自动加载并在Linux退出时自动停止的系统任务,CentOS 7.x开始,CentOS开始使用 systemd服务来代替 daemon ,原来管理系统启动和管理系统服务的相关命令全部由 systemctl命令来代替。
下面是一些常用的命令:
查看当前系统中所有系统服务:

systemctl list-unit-files

查看当前系统中正在运行的服务:

systemctl list-units --type service

查看某个特定的服务:

systemctl | grep "服务名"

查看服务占用的端口:

netstat -pnltu

系统服务的好处是,可以使用很多针对系统服务的命令,设置开机自启等,也更方便与任务进程的管理,那么我门怎么把一个非系统服务的进程加入到系统服务中去呢?

二. 自定义系统服务

如果是单纯的想要达到一个开机自启动的效果,其实除了注册为系统服务后配置,还可以使用下面的方法进行配置:
编辑开机启动的配置文件:

vim /etc/rc.d/rc.local

列如让Nginx开机自启动则在文件中添加下面一行代码:

/usr/local/nginx/sbin/nginx

值得注意的是:软件的启动命令必须独占一行
如果需要将软件配置为系统服务,实现更方便的管理模式的话,我们可以在/usr/lib/systemd/system格式为下的服务文件:

服务名.service

用下面的模板格式配置软件的启动命令以及依赖环境等:

[Unit]:            服务的说明
Description:       描述服务
After:             描述服务类别

[Service]             服务运行参数的设置
Type=forking          是后台运行的形式
ExecStart             为服务的具体运行命令/启动该服务的命令
ExecReload            为重启命令
ExecStop              为停止命令
PrivateTmp=True       表示给服务分配独立的临时空间

[Install]
WantedBy=multi-user.target 服务安装的相关设置,可设置为多用户,这玩意默认就这样写就行

值得注意的是:启动、重启、停止命令全部要求使用绝对路径因为需要找到该服务对应的操作脚本
这样我们就可以用systemctl命令来管理这个软件了
下面我们以将nginx注册为系统服务为例:
创建并编辑服务文件:

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

内容如下:

 [Unit]
 Description=nginx - high performance web server
 After=network.target remote-fs.target nss-lookup.target
    
 [Service]
 Type=forking
 ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
 ExecReload=/usr/local/nginx/sbin/nginx -s reload
 ExecStop=/usr/local/nginx/sbin/nginx -s stop
    
 [Install]
 WantedBy=multi-user.target

保存后就可以使用systemctl命令来操作nginx了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值