OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

5.4. 管理服务‌‌


卡利使用 systemd 作为它的 init 系统,它不仅负责启动顺序,而且永久充当全功能的服务管理器,启动和监控服务。

systemd 可以查询和控制 systemctl. 没有任何参数,它运行 systemctl 列表单位 命令,它输出活动的列表 单位. 如果你跑 systemctl 状态,输出显示正在运行的服务的分层概览。 比较这两个输出,您会立即看到有多种单元,而服务只是其中的一种。

每个服务由一个 服务单位,这是由通常随附的服务文件描述的

/lib/systemd/system/(或/run/systemd/system/,或/etc/systemd/system/;它们按重要性递增的顺序列出,最后一个获胜)。 每个都可能被其他人修改 服务名称.service.d/*.conf 文件在同一组目录中。 这些单元文件是纯文本文件,其格式受 Microsoft Windows 著名的“*.ini”文件启发,具有

= 折扣值 对分组在 [部分] 标题。 在这里,我们看到了一个示例服务文件 /lib/systemd/system/ssh.service:


[单元]

描述=OpenBSD Secure Shell 服务器 After=network.target auditd.service ConditionPathExists=!/etc/ssh/sshd_not_to_be_run


[服务]

EnvironmentFile=-/etc/default/ssh ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ExecReload=/bin/kill -HUP $MAINPID KillMode=进程

Restart=on-failure RestartPreventExitStatus=255 类型=通知


[安装]

WantedBy=multi-user.target 别名=sshd.service

[单元]

描述=OpenBSD Secure Shell 服务器 After=network.target auditd.service ConditionPathExists=!/etc/ssh/sshd_not_to_be_run


[服务]

EnvironmentFile=-/etc/default/ssh ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ExecReload=/bin/kill -HUP $MAINPID KillMode=进程

Restart=on-failure RestartPreventExitStatus=255 类型=通知


[安装]

WantedBy=multi-user.target 别名=sshd.service


目标单元是 systemd 设计的另一部分。 它们代表您希望以激活的单元(这意味着在服务单元的情况下运行的服务)获得的期望状态。 它们的存在主要是作为对其他单元的依赖进行分组的一种方式。 当系统启动时,它使所需的单位达到 默认目标 (这是一个符号链接 图形目标,而这又取决于 多用户.目标)。 因此,这些目标的所有依赖项在启动期间都会被激活。

这种依赖关系用 想要 目标单元上的指令。 但是您不必编辑目标单元来添加新的依赖项,您还可以创建一个指向

中的依赖单元 / etc / systemd / system /目标名称.target.想要/ 目录。 而这正是 systemctl 启用 服务 做。 当您启用一项服务时,您会告诉 systemd 添加对列表中列出的目标的依赖 通缉犯 进入 [安装] 服务单元文件的部分。 反过来, systemctl 禁用 服务 删除相同的符号链接,从而删除依赖项。

这个 enable 关闭 命令不会更改有关服务当前状态的任何内容。 它们只会影响下次启动时会发生什么。 如果你想立即运行服务,你应该执行 systemctl 启动 服务. 相反,你可以用 systemctl 停止 服务. 您还可以检查服务的当前状态 systemctl 状态 服务,其中包含相关日志的最新行。 更改服务配置后,您可能希望重新加载或重新启动它:这些操作是通过 systemctl 重新加载 服务 systemctl 重启 富。 服务


图片

# systemctl状态PostgreSQL

● postgresql.service - PostgreSQL RDBMS

已加载:已加载(/lib/systemd/system/postgresql.service;已禁用;供应商预设:

已禁用)

有效:无效(死)

# ls -al /etc/systemd/system/multi-user.target.wants/postgresql.service

ls:无法访问“/etc/systemd/system/multi-user.target.wants/postgresql.service”:否

这样的文件或目录

# systemctl启用postgresql

[...]

# ls -al /etc/systemd/system/multi-user.target.wants/postgresql.service

lrwxrwxrwx 1 root root 38 Apr 21 16:21 /etc/systemd/system/multi-user.target.wants/

postgresql.service -> /lib/systemd/system/postgresql.service

# systemctl状态PostgreSQL

● postgresql.service - PostgreSQL RDBMS

已加载:已加载(/lib/systemd/system/postgresql.service;已启用;供应商预设:

已禁用)

有效:无效(死)

# systemctl启动postgresql

# systemctl状态PostgreSQL

● postgresql.service - PostgreSQL RDBMS

已加载:已加载(/lib/systemd/system/postgresql.service;已启用;供应商预设:

已禁用)

活跃:自美国东部时间周四 2016-04-21 16:22:29 起活跃(退出); 2s 前进程:6355 ExecStart=/bin/true (code=exited, status=0/SUCCESS)

主PID:6355(代码=退出,状态=0/成功)


21 月 16 日 22:29:1 kali-rolling systemd[21]:启动 PostgreSQL RDBMS... 16 月 22 日 29:1:XNUMX kali-rolling systemd[XNUMX]:启动 PostgreSQL RDBMS。

OnWorks 的顶级操作系统云计算: