Linux使用systemd服務(wù)和crontab實(shí)現(xiàn)Shell腳本開(kāi)機(jī)自動(dòng)運(yùn)行過(guò)程
簡(jiǎn)介
systemd是Linux系統(tǒng)中的一個(gè)初始化系統(tǒng)和服務(wù)管理器。它可以用于在系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行Shell腳本。
crontab是一個(gè)用于定時(shí)執(zhí)行任務(wù)的工具。我們可以通過(guò)編輯crontab文件來(lái)設(shè)置開(kāi)機(jī)自啟動(dòng)
前提條件
創(chuàng)建一個(gè)Shell腳本文件,例如myscript.sh。該腳本將在系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行。
將腳本文件移動(dòng)到一個(gè)合適的目錄,例如/path/to/myscript.sh。
使用systemd服務(wù)
創(chuàng)建一個(gè).service文件
[Unit] Description=My Script Service After=network.target [Service] ExecStart=/path/to/myscript.sh [Install] WantedBy=default.target
將.service文件移動(dòng)到/etc/systemd/system/目錄下。
service文件內(nèi)容詳解
[Unit] Description=My Script Service After=network.target Description:描述服務(wù)的簡(jiǎn)短說(shuō)明 After:指定了服務(wù)應(yīng)該在哪個(gè)目標(biāo)(target)之后啟動(dòng),在這里是"network.target",則服務(wù)需要在網(wǎng)絡(luò)啟動(dòng)之后才能正常運(yùn)行 [Service] ExecStart=/path/to/myscript.sh ExecStart:指定了服務(wù)啟動(dòng)時(shí)的執(zhí)行命令或腳本的路徑 [Install] WantedBy=default.target WantedBy:指定了服務(wù)應(yīng)該被關(guān)聯(lián)到哪個(gè)目標(biāo)(target)進(jìn)行啟動(dòng),默認(rèn)為"default.target",意味著服務(wù)會(huì)隨系統(tǒng)的默認(rèn)目標(biāo)一起啟動(dòng)。 #刷新systemd服務(wù): sudo systemctl daemon-reload #使用以下命令來(lái)啟用服務(wù)并使其在系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行: sudo systemctl enable myscript.service #使用以下命令手動(dòng)啟動(dòng)服務(wù): sudo systemctl start myscript.service
注意:
- 若你此時(shí)手動(dòng)啟動(dòng)服務(wù),它將會(huì)立即運(yùn)行。
- 但是,系統(tǒng)重啟后,服務(wù)會(huì)自動(dòng)啟動(dòng)。
使用crontab
打開(kāi)終端,并輸入以下命令來(lái)編輯crontab文件:
crontab -e #在打開(kāi)的文件中添加以下內(nèi)容: @reboot /path/to/myscript.sh #/path/to/myscript.sh是你的Shell腳本文件的路徑
保存并退出編輯器。
結(jié)束語(yǔ)
使用服務(wù)和crontab兩種方法在Linux系統(tǒng)中實(shí)現(xiàn)開(kāi)機(jī)自啟動(dòng)Shell腳本的步驟,當(dāng)系統(tǒng)啟動(dòng)時(shí),Shell腳本將自動(dòng)運(yùn)行。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
在Ubuntu中如何查看網(wǎng)絡(luò)路由表詳解
這篇文章主要給大家介紹了關(guān)于在Ubuntu中如何查看網(wǎng)絡(luò)路由表的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用ubuntu具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12centos8安裝zabbix提示All mirrors were tried的解決方案
這篇文章主要介紹了centos8安裝zabbix提示All mirrors were tried的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Linux文件操作新手指南之關(guān)于install命令的用法
這篇文章主要介紹了Linux文件操作新手指南之關(guān)于install命令的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02Linux之多線(xiàn)程以及多線(xiàn)程并發(fā)訪(fǎng)問(wèn)同一塊內(nèi)存的處理問(wèn)題
這篇文章主要介紹了Linux之多線(xiàn)程以及多線(xiàn)程并發(fā)訪(fǎng)問(wèn)同一塊內(nèi)存的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY
這篇文章主要介紹了UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07jps查看進(jìn)程無(wú)法顯示的問(wèn)題及解決
文章描述了使用jps命令查看進(jìn)程無(wú)法顯示的問(wèn)題,并提供了解決方案,解決方法包括切換到tmp目錄,使用ll命令查看子目錄,找到并修改權(quán)限為755的"hsperfdata_[用戶(hù)名]"和"hsperfdata_root"目錄2025-01-01Windows下PHP安裝路徑配置錯(cuò)誤導(dǎo)致Apache無(wú)法啟動(dòng)的解決方法
這篇文章主要介紹了Windows下PHP安裝路徑配置錯(cuò)誤導(dǎo)致Apache無(wú)法啟動(dòng)的解決方法,本文可以說(shuō)是一個(gè)引號(hào)引發(fā)的悲劇,需要的朋友可以參考下2014-09-09