Centos7 修改systemd-halt.service 捕获关机系统运行级别输出到指定文件下
时间: 2024-01-13 08:03:11 浏览: 146
如果你想将运行级别的信息记录到指定的文件中,而不是系统日志中,可以在 `ExecStart` 行中添加重定向操作符 `>>`,例如:
```
ExecStart=/usr/bin/logger -t "systemd-halt" "System is powering off, current runlevel: $(runlevel)" >> /var/log/shutdown.log
```
这将把运行级别的信息输出到 `/var/log/shutdown.log` 文件中。
然后,你需要创建该文件并确保它可以被系统用户写入。你可以使用以下命令创建文件并设置权限:
```
sudo touch /var/log/shutdown.log
sudo chmod 666 /var/log/shutdown.log
```
这将创建一个空文件并设置权限,使得系统用户可以写入该文件。
完成以上步骤后,重新加载 systemd 配置并测试一下关机是否能够正常记录运行级别到指定的日志文件中:
```
sudo systemctl daemon-reload
sudo systemctl halt
```
之后你可以通过查看 `/var/log/shutdown.log` 文件来查看运行级别的信息。
相关问题
Centos7 修改systemd-halt.service 使得关机时写一个临时文件到特定的路径
在 CentOS 7 中,可以通过修改 `systemd-halt.service` 实现在关机时写一个临时文件到特定的路径。具体步骤如下:
1. 创建一个脚本文件,用于在关机时写入临时文件。可以使用以下命令创建一个名为 `write_temp_file.sh` 的文件:
```
sudo nano /usr/local/bin/write_temp_file.sh
```
2. 将以下内容添加到 `write_temp_file.sh` 文件中,替换 `<your text>` 为要写入文件的文本内容,`/path/to/temp/file` 为要写入的文件路径:
```
#!/bin/bash
echo "<your text>" > /path/to/temp/file
```
3. 保存并关闭文件。
4. 使用以下命令修改 `systemd-halt.service` 文件:
```
sudo nano /usr/lib/systemd/system/systemd-halt.service
```
5. 在文件的 `[Unit]` 部分下添加以下内容:
```
RequiresMountsFor=/path/to/temp/file
```
这将确保在关机时 `/path/to/temp/file` 路径上的文件系统已经被挂载。
6. 在文件的 `[Service]` 部分下添加以下内容:
```
ExecStart=/usr/local/bin/write_temp_file.sh
```
这将在关机时执行 `write_temp_file.sh` 脚本文件。
7. 保存并关闭文件。
8. 使用以下命令重新加载 systemd 配置:
```
sudo systemctl daemon-reload
```
现在,当您的 CentOS 7 系统关机时,将会自动执行 `write_temp_file.sh` 脚本文件,并在 `/path/to/temp/file` 路径上写入临时文件。
Centos7 修改systemd-halt.service ExecStop
`systemd-halt.service` 的 `ExecStop` 行用于在关机时停止服务,因此如果你想要修改该行,需要小心操作,以确保服务能够正常停止并不会影响系统的正常关机。
默认情况下,`ExecStop` 行如下所示:
```
ExecStop=/usr/bin/systemctl poweroff
```
这将使用 `systemctl` 命令执行 `poweroff` 操作,以停止服务并关闭系统。如果你想要修改该行以执行其他操作,可以按照以下步骤进行:
1. 打开 `/usr/lib/systemd/system/systemd-halt.service` 文件:
```
sudo vi /usr/lib/systemd/system/systemd-halt.service
```
2. 找到 `ExecStop` 行,并将其修改为你需要的命令。例如,如果你想要执行一些其他操作,可以使用以下命令:
```
ExecStop=/path/to/custom/shutdown/script.sh
```
这将执行 `/path/to/custom/shutdown/script.sh` 脚本来停止服务和关闭系统。请确保该脚本能够正常运行,并能够在系统关闭时被调用。
3. 保存文件并退出编辑器。
4. 重新加载 systemd 配置:
```
sudo systemctl daemon-reload
```
现在,当你关机时,系统将执行 `ExecStop` 行中指定的命令来停止服务和关闭系统。请确保你对该行所做的任何更改都能够正常工作,并不会影响系统的正常关机。
阅读全文