购买天猫店铺网站,百度做网站需要交钱吗,有没有在线辅导家做的网站,抖音权重查询工具0. systemd介绍
Linux系统的systemd是第一个运行的进程#xff0c;用来创建系统的守护进程#xff0c;管理整个Linux系统。systemd支持并行启动守护进程#xff0c;systemd初始化整个系统所需的资源。
0.1 systemd基本命令
systemctl systemctl是systemd中最基本的命令用来创建系统的守护进程管理整个Linux系统。systemd支持并行启动守护进程systemd初始化整个系统所需的资源。
0.1 systemd基本命令
systemctl systemctl是systemd中最基本的命令用于管理系统。常见基础用法如下。
sudo systemctl reboot # 重启系统
sudo systemctl poweroff # 关闭系统
sudo systemctl halt # CPU 停止工作
sudo systemctl suspend # 暂停系统systemd-analyze systemd-analyze用于分析系统启动守护进程所耗费的时间。
0.2 Unit
systemd可以管理系统资源不同的资源统称为Unit。 资源unit总共有12种
service系统服务target多个unit构成的一个组 当systemd需要管理多个units可以通过target来帮助系统大量启动unit。target本质是一个unit组包含了unit。 启动某个target时systemd会启动里面所有的uint。 systemd启动的第一个target为default.target本质是一个软连接执行multi-user.target或者graphical.target mount文件系统挂载点automount自动挂载点path文件或路径scope不是有systemd启动的外部进程slice进程组socket进程间通信的socketswapswap文件timer定时器device硬件设备 unit常见管理命令如下
systemctl start unit
systemctl stop unit
systemctl restart unit
systemctl reload unit (重新加载unit的配置文件)
systemctl kill unit (杀死unit的所有进程)
systemctl daemon-reload(重新加载所有修改过的配置文件)1. unit配置文件
每一个unit都有一个配置文件告诉ystemd如何启动该unit. systemd默认从目录/etc/systemd/system/中读取配置文件。但是该目录下大部分文件都是符号链接真正的配置文件存放在/lib/systemd/system目录下
unit组 [Unit]区块用来定义Unit的内容配置于其他Unit的依赖、启动顺序关系。 Description简短描述作用 Documentation文档地址 Requiers当前unit依赖的其他unit如果它们没有运行当前unit会启动失败 Wants与当前 Unit 配合的其他 Unit如果它们没有运行当前 Unit 不会启动失败 BindsTo与Requires类似它指定的 Unit 如果退出会导致当前 Unit 停止运行 Before如果该字段指定的 Unit 也要启动那么必须在当前 Unit 之后启动 After如果该字段指定的 Unit 也要启动那么必须在当前 Unit 之前启动 [Service]区块 Type定义启动时的进程行为。它有以下几种值。 Typesimple默认值执行ExecStart指定的命令启动主进程 Typeforking以 fork 方式从父进程创建子进程创建后父进程会立即退出 Typeoneshot一次性进程Systemd 会等当前服务退出再继续往下执行 Typedbus当前服务通过D-Bus启动 Typenotify当前服务启动完毕会通知Systemd再继续往下执行 Typeidle若有其他任务执行完毕当前服务才会运行 ExecStart启动当前服务的命令 ExecStartPre启动当前服务之前执行的命令 ExecStartPost启动当前服务之后执行的命令 ExecReload重启当前服务时执行的命令 ExecStop停止当前服务时执行的命令 ExecStopPost停止当其服务之后执行的命令 RestartSec自动重启当前服务间隔的秒数 Restart定义何种情况 Systemd 会自动重启当前服务可能的值包括always总是重启、on-success、on-failure、on-abnormal、on-abort、on-watchdog TimeoutSec定义 Systemd 停止当前服务之前等待的秒数 Environment指定环境变量 RemainAfterExitunit的进程退出后unit资源保留下来 TimeoutStartSec 启动服务时的等待的秒数如果超过这个时间服务任然没有执行完所有的启动命令则 systemd 会认为服务自动失败。这一配置对于使用 Docker 容器托管的应用十分重要由于 Docker 第一次运行时可以能会需要从网络下载服务的镜像文件因此造成比较严重的延时容易被 systemd 误判为启动失败而杀死。通常对于这种服务需要将 TimeoutStartSec 的值指定为 0从而关闭超时检测如前面的第二个例子。 [Install]区块定义如何启动以及是否开机启动 WantedBy它的值是一个或多个 Target当前 Unit 激活时enable符号链接会放入/etc/systemd/system目录下面以 Target 名 .wants后缀构成的子目录中 RequiredBy它的值是一个或多个 Target当前 Unit 激活时符号链接会放入/etc/systemd/system目录下面以 Target 名 .required后缀构成的子目录中 Alias当前 Unit 可用于启动的别名 Also当前 Unit 激活enable时会被同时激活的其他 Unit 2. 开机自启动
在[Install]区块中定义了是否开机启动。为了能够使得服务开机自启动需要执行如下命令激活服务
$ systemctl enable rot13同样可以通过如下命令disable服务取消开机自启动
$ systemctl disable rot133. 服务自动重启
在[Service]区块中可以通过设置restart相关参数使得服务自动重启
4. 查看服务状态
可以通过journalctl工具查看指定服务的输出-u用来指定服务名称-f指定实时输出
sudo journalctl -n -f -u baoshen.service总结
在ubuntu中对于开发者开发的应用想要以服务的形式开机重启可以通过本文章找到相应的答案。本文介绍了ubuntu下服务的各种操作以及每个组区块的各种含义。