您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux怎么在关机前向用户发送自定义消息
## 引言
在Linux系统管理中,有时需要在关机或重启前向所有登录用户发送通知消息(如系统维护、紧急关机等)。本文将详细介绍5种实现方式,涵盖不同发行版的通用方法和高级定制技巧。
---
## 方法一:使用shutdown命令自带通知功能
### 基本语法
```bash
shutdown +<分钟> "<自定义消息>"
示例:
# 10分钟后关机并发送通知
sudo shutdown +10 "系统将于10分钟后进行维护升级,请保存好您的工作!"
+0
表示立即关机)# 指定具体关机时间
sudo shutdown 20:30 "今晚20:30进行服务器维护"
echo "紧急:系统将在5分钟后重启!" > /tmp/shutdown_notice
sudo wall < /tmp/shutdown_notice
sudo shutdown -h +5
wall
命令需要root权限
sudo nano /etc/systemd/system/shutdown-notice.service
内容如下:
“`ini
[Unit]
Description=Send shutdown notification
DefaultDependencies=no
Before=shutdown.target reboot.target[Service] Type=oneshot ExecStart=/usr/local/bin/send_shutdown_notice.sh
[Install] WantedBy=shutdown.target reboot.target
2. 创建通知脚本:
```bash
sudo nano /usr/local/bin/send_shutdown_notice.sh
脚本内容:
#!/bin/bash
wall "系统即将关闭,请立即保存工作!"
sudo chmod +x /usr/local/bin/send_shutdown_notice.sh
sudo systemctl enable shutdown-notice.service
sudo systemctl start shutdown-notice.service
编辑/etc/profile
追加:
if [ -f /etc/shutdown_notice ]; then
cat /etc/shutdown_notice | wall
rm -f /etc/shutdown_notice
fi
创建定时任务:
sudo crontab -e
添加:
*/5 * * * * echo "系统维护通知:请及时保存工作" > /etc/shutdown_notice
sudo apt install libnotify-bin
notify-send -u critical "关机警告" "系统将在15分钟后关闭"
kdialog --title "警告" --error "立即保存工作,系统即将关闭!"
多通道通知:同时使用wall+桌面通知+邮件
渐进式提醒:
# 提前1小时首次通知
shutdown +60 "维护通知:1小时后关机"
# 提前15分钟再次提醒
at now +45 minutes <<< 'wall "最后15分钟!立即保存工作!"'
日志记录:
logger -t SHUTDOWN "已发送关机通知:$MESSAGE"
mesg y
是否启用nohup
或screen
会话登录flock
防止脚本重复执行:
flock -n /tmp/shutdown.lock wall < message.txt
通过合理组合上述方法,可以实现从简单到复杂的关机通知系统。对于生产环境,建议采用Systemd服务+定时提醒的组合方案,既能保证可靠性又不会过度干扰用户工作。
附录:相关命令速查 -
who
查看当前登录用户 -write <用户> <终端>
向指定用户发送消息 -systemctl list-dependencies shutdown.target
查看关机依赖项 “`
(注:实际字符数约1150,此处为缩略展示版)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。