Linux_开机_关机_重启_的时候执行脚本
转载注明来源: 本文链接 来自osnosn的博客,写于 2024-08.
参考
- Linux关机时执行指定脚本
- 如何在 Systemd 下配置并运行关机前的脚本
- 在 Linux 启动或重启时执行命令与脚本
- Centos7关机和重启前执行自定义脚本
- 如何在重启或启动时执行命令或脚本
- ubuntu中编写shell脚本开机自动启动
- 如何让ubuntu在关机或重启时执行脚本
- linux下添加简单的开机自启动脚本
- Linux 自启动 假死自启动
- 配置linux centos7.5系统 关机前执行指定脚本
- Linux 开机运行shell脚本 启动桌面时
- 详解在 Linux 启动时,如何自动执行命令或脚本
方法
- 开机后,重启后,运行脚本
- /etc/rc.local 中执行脚本
- /etc/init.d/ 中添加启动脚本
- /etc/systemd/system/ 中添加服务。有的系统没有使用systemd。
- crontab 中使用
@reboot
运行定时脚本。有的系统不支持,比如openwrt不支持。
- 关机前,重启前,运行脚本
- /etc/init.d/ 中添加停止脚本
- /etc/systemd/system/ 中添加服务
- ssh 登录时执行脚本
- /etc/profile
- ~/profile
- /etc/bashrc
- ~/.bashrc
systemd 的参考
- 第 10 章 使用 systemd 管理服务
- systemd服务配置文件编写
- 随笔分类 - systemd
- 可能是史上最全面易懂的 Systemd 服务管理教程
- 编写systemctl自启动服务
- systemd 编写服务管理脚本
- Linux系统编写Systemd Service实践
例子
- /etc/systemd/system/startup-shutdown-script.service
[Unit] Description=Startup shutdown Script ConditionFileIsExecutable=/root/script/startup-shutdown.sh Requisite=network-online.target Conflicts=halt.target reboot.target shutdown.target poweroff.target Before=halt.target reboot.target shutdown.target poweroff.target After=network-online.target [Service] Type=simple #开机后,执行 ExecStart=/root/script/startup-shutdown.sh startup #关机前,重启前,执行 ExecStop=/root/script/startup-shutdown.sh shutdown StandardOutput=append:/root/script/startup-shutdown-out.log StandardError=append:/root/script/startup-shutdown-err.log RemainAfterExit=yes [Install] WantedBy=multi-user.target
- /root/script/startup-shutdown.sh , 要设置执行权限
chmod +x startup-shutdown.sh
#!/usr/bin/bash selfpath=$(/usr/bin/dirname $(/bin/readlink -f -- $0)) #当前目录 cd ${selfpath} log_file=script.log if [ "$1" = "startup" ]; then #开机后 echo $(/bin/date '+%F_%T%z_%w') startup >> ${log_file} #有网络可用 curl --connect-timeout 9 'https://mydomain.domain/report.php' -k -sS -X POST -d "title=test1&log[]=123&log[]=456&log[]=startup" >> /dev/null 2>> ${log_file} elif [ "$1" = "shutdown" ]; then #关机前,重启前 echo $(/bin/date '+%F_%T%z_%w') shutdown >> ${log_file} #有网络可用 curl --connect-timeout 9 'https://mydomain.domain/report,php' -k -sS -X POST -d "title=test1&log[]=123&log[]=456&log[]=shutdown" >> /dev/null 2>> ${log_file} else echo $(/bin/date '+%F_%T%z_%w') "$1" unknow >> ${log_file} echo " Usage:" echo " $0" "[startup|shutdown]" echo fi exit 0
----end----
转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/18358310.html
来自 osnosn的博客 https://www.cnblogs.com/osnosn/ .
标签:脚本,关机,systemd,log,startup,shutdown,Linux,开机,target From: https://www.cnblogs.com/osnosn/p/18358310