CentOS 7:尝试使用 SystemD
2023-06-08 08:00:00
·
飞浪
·
·考克斯
CentOS7以及大量内核、桌面、软件包和应用程序的变更,使“Fedora”和“Debian”陷入了困境,并将守护进程和服务管理从旧的“服务或/etc/init.d”模式转换为“systemd”模
CentOS 7 以及大量内核、桌面、软件包和应用程序的变更,使“Fedora”和“Debian”陷入了困境,并将守护进程和服务管理从旧的“服务或 /etc/init.d”模式转换为“systemd”模式。如果您是日常使用的现代 Linux 桌面用户,您可能完全熟悉该方法,但是,对于那些长期使用 Red Hat 和 CentOS 的“服务”管理方法的管理员来说,这是一个相当大的变化。让我们更深入地了解新的做事方式。为什么突然改变?好吧,简单地说,是时候了。现在我们的服务器已经进入现代时代,它们被要求做所有事情,包括为我们做晚餐(好吧,也许还没有那么远),有很多事情是旧的基于“init”的系统(完整地说,“init”系统在技术上被归入“sysvinit”类别,以标记它们与很久以前的 Unix System V 兼容)不太擅长或需要大量额外的黑客攻击。以下只是 systemd 可以做但在“init”发行版下不受支持的几件事:
- 提前阅读
- 基于套接字的服务激活
- 基于设备的服务激活(即 USB)
- 系统快照(虚拟化、ZFS 或其他
- SELinux 完全集成(内核级别,而非服务级别)
- 设备依赖配置(udev 规则)
- 服务重生且不中断连接
- 服务 SSL 证书/LUKS 密码处理(包括控制台、墙和 Gnome 代理)
- 交互式启动(基于依赖关系并确认服务启动)
- 关停期间可靠终止用户会话
- 早期的 BOOT 日志
这是 systemd 提供的部分功能,您可以在此处查看更全面的列表以获取更多信息。如何使用它深入了解 systemd 的最简单方法是查看用于管理进程的命令。 假设我们想看看“sshd”服务是否在 CentOS 6(或其他“sysvinit”发行版)上运行。 我们可以发出以下命令并查看结果:sudo service sshd statussshd (pid 2095) is running...
太好了。 我们知道它正在运行,但不知道其他的。 让我们看看 systemd 如何处理相同的查询以及它可以提供的额外内省:sudo systemctl status sshdsshd.service - OpenSSH server daemonLoaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)Active: active (running) since Sun 2014-08-03 16:08:44 CDT; 1h 11min agoProcess: 761 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)Main PID: 776 (sshd)CGroup: /system.slice/sshd.service└─776 /usr/sbin/sshd -DAug 03 16:08:44 centos7vm systemd[1]: Started OpenSSH server daemon.Aug 03 16:08:44 centos7vm sshd[776]: Server listening on 0.0.0.0 port 22.Aug 03 16:08:44 centos7vm sshd[776]: Server listening on :: port 22.Aug 03 16:44:26 centos7vm sshd[2191]: Accepted password for USER from 192.168.1.XX port 60818 ssh2
哇! 这比我们以前得到的多一点信息,除了询问之外,我们无需做任何事情就可以找到它。 让我们快速看一下新的 systemd 命令和它们替换的等效 sysvinit 命令:SYSTEMD SYSVINIT======= ========systemctl start httpd service httpd startsystemctl stop httpd service httpd stopsystemctl restart httpd service httpd restartsystemctl status httpd service httpd statussystemctl enable httpd chkconfig httpd onsystemctl disable httpd chkconfig httpd offsystemctl is-enabled httpd N/Asystemctl mask httpd N/A
现在,一般来说,大多数现代发行版仍然“支持”旧的 sysvinit 做事方式。 但是,如果您使用旧方法,您将看到以下消息(目前):sudo service sshd restartRedirecting to /bin/systemctl restart sshd.service
请记住,这种支持并不能保证会持续存在,我怀疑它最终会消失。确保您了解新命令。最后的想法Sysytemd 自 2011 年初创建以来一直受到所有主要发行版的支持。通过这种方式管理系统的额外功能和灵活性将为您提供以前缺少的信息和使用一致性(请注意,相同的命令用于执行所有操作,例如无需在服务和 chkconfig 之间来回切换)。在您开始安装自己的服务或想要更改系统的默认运行级别之前,过渡并不困难。我们将在以后的文章中介绍这些主题。如果有任何问题或问题,请在下方留言,我们将尽力帮助您!
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~