写个shell脚本restart_rsyslog.sh,找出进程/usr/sbin/rsyslogd -f /etc/rsyslog.conf -n 将其杀死并以/usr/sbin/rsyslogd -f /etc/rsyslog.conf -n & 重新拉起
时间: 2025-01-10 18:56:13 浏览: 12
创建一个名为 restart_rsyslog.sh
的 shell 脚本,你可以按照下面的步骤编写:
#!/bin/bash
# 检查 rsyslogd 进程是否存在
if ps aux | grep -q '/usr/sbin/rsyslogd -f /etc/rsyslog.conf -n'; then
echo "rsyslogd 进程正在运行,将要重启..."
# 杀死当前的 rsyslogd 进程
pid=$(ps aux | grep '/usr/sbin/rsyslogd -f /etc/rsyslog.conf -n' | awk '{print $2}')
if [[ -n "$pid" ]]; then
kill -TERM "$pid"
sleep 1 # 等待1秒,确保进程完全关闭
rm -f /var/run/rsyslog.pid # 清除可能存在的旧PID文件
else
echo "无法找到rsyslogd进程,跳过杀进程环节。"
fi
else
echo "rsyslogd 进程未运行,直接启动..."
fi
# 启动新的 rsyslogd
/usr/sbin/rsyslogd -f /etc/rsyslog.conf -n &
echo "rsyslogd已成功重启."
# 输出日志PID
echo "New rsyslogd process ID: $(pgrep -f '/usr/sbin/rsyslogd -f /etc/rsyslog.conf -n')"
保存脚本到 /path/to/restart_rsyslog.sh
,然后给予执行权限:
chmod +x /path/to/restart_rsyslog.sh
运行脚本:
./restart_rsyslog.sh