>  기사  >  시스템 튜토리얼  >  systemd: Linux의 슈퍼 도구 상자

systemd: Linux의 슈퍼 도구 상자

王林
王林앞으로
2024-02-09 17:42:20882검색

systemd:Linux 上的超级工具箱

systemd는 Linux의 최신 초기화 시스템으로 시스템 시작, 서비스 실행, 사용자 로그인 등을 관리합니다. systemd의 목표는 빠르고 유연하며 확장 가능한 시스템 관리 프레임워크를 제공하는 것입니다. 그러나 systemd는 단순한 초기화 시스템이 아니라 Linux 시스템을 보다 쉽게 ​​관리하고 모니터링할 수 있도록 하는 다른 많은 기능과 도구도 제공합니다. 이 글에서는 systemd로 할 수 있는 세 가지 놀라운 일을 소개합니다.

  • Linux ps 단순화: systemd-cgtop 명령을 사용하여 제어 그룹을 기반으로 시스템 로드를 확인하세요
  • Linux 예약 작업: systemd 타이머를 사용하여 정기적으로 실행되는 작업을 예약하세요
  • Linux 컨테이너 실행: Podman 및 systemd를 사용하여 컨테이너 관리 및 모니터링

systemd가 처음 나왔을 때 부팅 시간을 단축할 수 있다는 소식이 많이 있었습니다. 이 기능은 대부분의 사람들에게 매력적이므로(재부팅하지 않는 사람들에게는 그렇지 않음) 여러 면에서 오늘날에도 여전히 그 명성을 누리고 있습니다. systemd는 부팅 프로세스 중에 병렬로 서비스를 시작하는 역할을 수행하지만 그 이상을 수행합니다. systemd가 할 수 있다는 것을 깨닫지 못할 수도 있지만 활용해야 할 세 가지 사항은 다음과 같습니다.

1. 리눅스를 단순화하세요 ps

ps,甚至只是 top 명령을 사용해 본 적이 있다면 컴퓨터에 항상 수백 개의 프로세스가 실행되고 있다는 것을 알 것입니다. 때때로 이는 컴퓨터나 사용자가 수행하는 작업을 이해하는 데 필요한 정보일 뿐입니다. 어떤 경우에는 실제로 필요한 것이 일반적인 개요입니다.

systemd-cgtop 命令提供了一个基于控制组cgroup任务安排的计算机负载的简单视图。控制组 对现代 Linux 很重要,基本上是容器和 Kubernetes 的底层支持结构(这也是云计算可以扩展的原因),但它们也是家庭电脑上的有用结构。例如,从 systemd-cgtop의 출력에서 ​​시스템 프로세스가 아닌 사용자 프로세스의 로드를 볼 수 있습니다.

으아악

사용자 공간 프로세스만 보거나 사용자 공간 프로세스 및 커널 스레드를 볼 수도 있습니다.

이것은 결코 topps를 대체하는 것이 아니라 시스템을 다른 고유한 관점에서 보는 방법입니다. 컨테이너는 제어 그룹을 사용하므로 컨테이너를 실행할 때 중요할 수 있습니다.

2. Linux 예약 작업

Cron은 Linux의 고전적인 구성 요소입니다. 정기적으로 어떤 일이 발생하도록 예약하려는 경우 Cron을 사용합니다. 안정적이며 시스템에 상당히 잘 통합됩니다.

문제는 Cron이 일부 컴퓨터가 종료된다는 사실을 이해하지 못한다는 것입니다. 크론 작업이 자정으로 예약되어 있지만 매일 23시 59분에 컴퓨터를 종료하면 크론 작업이 실행되지 않습니다. Cron에는 밤새 놓친 작업을 감지하는 도구가 없습니다.

이 질문에 대한 답변으로 좋은 Anacron이 있지만 Cron만큼 통합이 잘 되어 있지는 않습니다. Anacron을 실행하려면 많은 설정을 수행해야 합니다.

두 번째 옵션은 시스템 타이머입니다. Cron과 마찬가지로 내장되어 있어 바로 사용할 수 있습니다. 단위 파일을 작성해야 하는데 이는 한 줄의 Crontab 항목보다 확실히 더 많은 작업이지만 매우 간단합니다. 예를 들어, 다음은 부팅 후 30분 동안 가상 백업 스크립트를 실행하지만 하루에 한 번만 실행하는 단위 파일입니다. 이렇게 하면 내 컴퓨터가 백업되고 하루에 두 번 이상 백업을 시도하는 것을 방지할 수 있습니다.

[Unit]
Description=Backup
Requires=myBackup.service
[Timer]
OnBootSec=30min
OnUnitActiveSec=1d
[Install]
WantedBy=timers.target

当然,你也可以干预并提示运行一个任务。多亏了 OnUnitActiveSec 指令,systemd 不会试图运行你手动激活的作业。

3、运行 Linux 容器

容器使启动一个复杂的服务变得非常容易。你可以在短短几分钟内运行一个 Mattermost 或 Discourse 服务器。在某些情况下,困难的部分是在你运行容器后管理和监控它们。Podman 使得管理它们变得容易,但是用什么来管理 Podman 呢?嗯,你可以使用 systemd。

Podman 有一个内置的命令来生成单元文件,这样你的容器就可以被 systemd 管理和监控:

$ podman generate systemd --new --files --name example_pod

然后你所要做的就是启动服务:

$ systemctl --user start pod-example_pod.service

和其他服务一样,systemd 确保你的容器荚在任何情况下都能运行。它记录问题,你可以用 journalctl 和其他重要的日志来查看,你也可以用 systemd-cgtop 在控制组中监控它的活动。

它不是 Kubernetes 平台,但对于一两个容器来说,你只需要在可靠和可预测的基础上提供服务,Podman 和 systemd 是一对很棒的组合。

本文介绍了三件可以用 systemd 做的令人惊讶的事情,它们可以让你更轻松地管理和监控你的 Linux 系统。systemd 的内容还有很多,你可以从作者 David Both 的新书《systemd 实用指南》中了解更多。希望本文对你有所帮助!

위 내용은 systemd: Linux의 슈퍼 도구 상자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 lxlinux.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제