CentOs7下systemd管理知识要点 - oldbig - 博客园

centOs7的一个巨大的变动就是用systemd取代了原来的System V init。systemd是一个完整的软件包,安装完成后有很多物理文件组成,大致分布为,配置文件位于/etc/systemd这个目录下,配置工具命令位于/bin,和/sbin这两个目录下,预先准备的备用配置文件位于/lib/systemd目录下,还有库文件和帮助手册等等。这是一个庞大的软件包。详情使用rpm -ql systemd即可查看。

systemd已经不仅仅是一个启动管理软件,而且是一个综合性的服务管理软件,它将逐渐成为一个多功能的系统环境,能够处理非常多的系统管理任务,有人甚至将它看作一个操作系统。

本文并非系统介绍systemd,而是总结出一些管理知识要点备忘。

获取当前默认的target:systemctl get-default

systemd添加新的unit(daemon):

也就是采用systemd来管理,与/sbin/chkconfig --add foo相当

把新生成的foo.service 放到/usr/lib/systemd/system/下面,然后采用load命令导入

systemctl load foo.service

systemctl daemon-reload   //全部重新导入

删除unit(daemon):删除一个unit没有相应的命令,通常的做法是停掉daemon,然后删除相应的配置文件。

开机启动unit

systemctl enable postfix.service

其实质是,增加由/usr/lib/systemd/system/到/etc/systemd/system/multi-user.target.wants/下的软链接

ln -s '/usr/lib/systemd/system/postfix.service' '/etc/systemd/system/multi-user.target.wants/postfix.service'

关于service单元配置文件

Description是对服务的描述,方便记忆和阅读,一般来说这里可以随心所欲的。
Wants是服务项的启动依赖那些项。
Type是服务的类型,有simple,forking,oneshot,dbus,notify,idle。其中我们常用的类型有simple,forking,oneshot。simple 是默认,这是最简单的服务类型。意思就是说启动的程序就是主体程序,这个程序要是退出那么一切都退出。forking 标准 Unix Daemon 使用的启动方式。启动程序后会调用 fork() 函数,把必要的通信频道都设置好之后父进程退出,留下守护精灵的子进程。oneshot种服务类型就是启动,完成,没进程了。
ExecStart是启动脚本的路径和参数,参数和脚本之间用空格分割。
Restart是配置启动项是否需要重启,有no,on-success,on-failure,on-abnormal,on-watchdog,on-abort,always。这些选项就是他们字面意思,abnormal意思是反常的,看文档里面说除了信号SIGHUP,SIGINT,SIGTERM,SIGPIPE以外其他信号终止的,都是反常的包含code dump,操作超时等。

WantBy指服务在何种情况下面会被启动,例如上面multi-user.target指的是多用户环境。

开机不启动unit

systemctl disable httpd.service

删除/etc/systemd/system/multi-user.target.wants下的软链接

查看开机是否启动

systemctl is-enabled xx.service #查询服务是否开机启动

systemd查看开机自启动的程序

相当于chkconfig --list

ls /etc/systemd/system/multi-user.target.wants/

查看systemd单元加载及活动情况

systemctl

显示启动失败的单元

systemctl --failed

查看systemd管理的所有单元

systemctl list-unit-files


Original url: Access
Created at: 2019-11-09 11:48:08
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论