Centos7 设置系统关机时执行写入文件
时间: 2024-04-28 18:25:39 浏览: 9
您可以通过编辑`/etc/systemd/system/shutdown.target`文件,在其中添加一个ExecStart行来实现在CentOS7系统关机时执行写入文件。具体操作步骤如下:
1. 打开终端并使用root用户登录系统。
2. 进入`/etc/systemd/system`目录。
3. 使用文本编辑器(如vi或nano)打开文件`shutdown.target`。
4. 在文件中找到`[Unit]`部分,然后在其下方添加一行`ExecStart=/path/to/your/script.sh`,其中`/path/to/your/script.sh`是您要执行的脚本的完整路径。
5. 保存并关闭文件。
6. 运行`systemctl daemon-reload`命令以重新加载systemd配置文件。
7. 测试一下,执行`shutdown -h now`命令,观察是否执行了您的脚本。
这样,当您在系统上执行关机操作时,systemd将运行您指定的脚本并执行其中的命令。
相关问题
Centos7 设置系统崩溃时写入文件
在CentOS7中,您可以使用Kernel Crash Dump(Kdump)来在系统崩溃时自动保存内存转储文件,以便后续分析和故障排除。您可以在Kdump配置中指定要在系统崩溃时执行的脚本或命令。
以下是设置系统崩溃时写入文件的步骤:
1. 安装Kdump:运行以下命令安装Kdump:
```
yum install kexec-tools crash
```
2. 配置Kdump:运行以下命令以编辑Kdump配置文件 /etc/kdump.conf:
```
vi /etc/kdump.conf
```
在该文件中添加以下行:
```
path /var/crash
core_collector makedumpfile -C -d 31
post /path/to/your/script.sh
```
其中,/var/crash是内存转储文件保存的目录,makedumpfile是将内存转储文件转换为可用于分析的格式的工具,31是指定要保存的内存转储文件的数量(您可以根据需要更改此数字),/path/to/your/script.sh是您要在系统崩溃时执行的脚本的完整路径。
3. 启用和启动Kdump:运行以下命令以启用和启动Kdump:
```
systemctl enable kdump.service
systemctl start kdump.service
```
现在,当系统崩溃时,Kdump将自动保存内存转储文件并执行您指定的脚本。
如Centos 7 如何捕获关机时的系统运行级别
在 CentOS 7 中,可以通过 systemd 服务管理器来捕获系统运行级别。systemd 提供了一个名为 systemd-halt.service 的服务,它会在系统关机时执行。
为了捕获系统运行级别,可以在 systemd-halt.service 的 ExecStop 部分添加以下命令:
```
systemctl status --no-pager | grep "Main PID" | awk '{print $3}' > /var/run/shutdown.pid
```
这个命令会查询系统当前运行的服务,并将包含 "Main PID" 的行的第三个字段(即 systemd 进程的 PID)写入 /var/run/shutdown.pid 文件中。
当系统关机时,systemd-halt.service 将会执行这个命令,并将当前 systemd 进程的 PID 写入到 /var/run/shutdown.pid 文件中。这个文件可以在系统启动时被读取,以确定系统关机时的运行级别。
在启动脚本中,可以通过读取 /var/run/shutdown.pid 文件来获取系统关机时的运行级别。例如,可以使用以下命令来读取 /var/run/shutdown.pid 文件:
```
if [ -f /var/run/shutdown.pid ]; then
shutdown_pid=$(cat /var/run/shutdown.pid)
# Do something with the shutdown PID
fi
```
这个命令会检查 /var/run/shutdown.pid 文件是否存在,并将其中的 PID 赋值给变量 shutdown_pid。然后,可以根据 shutdown_pid 变量的值来确定系统关机时的运行级别。