0. 前言
如果你在linux系統(tǒng)上啟動(dòng)了很多自己的服務(wù),如果直接執(zhí)行系統(tǒng)的reboot或者shutdown命令扯旷,可能會(huì)發(fā)生一些異常的現(xiàn)象庙洼,所以我們?cè)谥貑⒑完P(guān)機(jī)前,應(yīng)該按照我們的意愿去自定義清理一些服務(wù)或者資源等栏赴。但是網(wǎng)上的方式大多是以Centos6為教程,修改chkconfig和rc0.d,rc6.d的內(nèi)容靖秩。在Centos7中以及不適用了须眷。
本文就介紹一下在Centos7系統(tǒng)中竖瘾,使用systemctl的方式來自定義關(guān)機(jī)前執(zhí)行腳本。
1. 創(chuàng)建systemd服務(wù)
vi /usr/lib/systemd/system/stopSrv.service
創(chuàng)建該文件然后加入下面的內(nèi)容花颗,需要把ExecStart=/home/my_script
這一行換成自己的腳本路徑
[Unit]
Description=close services before reboot and shutdown
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target
# This works because it is installed in the target and will be
# executed before the target state is entered
# Also consider kexec.target
[Service]
Type=oneshot
ExecStart=/home/my_script #your path and filename
[Install]
WantedBy=halt.target reboot.target shutdown.target
2. 啟動(dòng)服務(wù)
然后執(zhí)行
systemctl enable stopSrv
經(jīng)過這兩步操作捕传,關(guān)機(jī)和重啟前,就會(huì)自動(dòng)執(zhí)行你自定義的腳本了