Linux系統如何設定開機自動執行指令碼?

文章推薦指數: 80 %
投票人數:10人

在工作中,我們經常有個需求,那就是在系統啟動之後,自動啟動某個指令碼或服務。

在Windows 下,我們有很多方法可以設定開機啟動,但在Linux 系統下 ... MdEditor Linux系統如何設定開機自動執行指令碼? 語言:CN/TW/HK 時間 2020-06-1216:30:29 雲棲號資訊小哥 主題: linux 指令碼 service 雲棲號資訊:【點選檢視更多行業資訊】在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來! 在工作中,我們經常有個需求,那就是在系統啟動之後,自動啟動某個指令碼或服務。

在Windows下,我們有很多方法可以設定開機啟動,但在Linux系統下我們需要如何操作呢? Linux下同樣可以設定開機啟動,但可能需要我們敲一些命令(可能也有UI介面的設定方法,但我不熟,我更多是玩命令)。

下面我們就介紹三種簡單但可行的開機啟動設定方法。

方法一:修改/etc/rc.d/rc.local檔案 /etc/rc.d/rc.local檔案會在Linux系統各項服務都啟動完畢之後再被執行。

所以你想要自己的指令碼在開機後被執行的話,可以將自己指令碼路徑加到該檔案裡。

但是,首先需要確認你有執行這個檔案的許可權。

$chmod+x/etc/rc.d/rc.local 為了演示,我們建立了一個指令碼,當它被執行之後,將在家目錄下寫入有特定資訊的檔案。

$vimauto_run_script.sh #!/bin/bash date>>/home/alvin/output.txt hostname>>/home/alvin/output.txt 儲存退出後,再給它賦予可執行許可權: $chmod+xauto_run_script.sh 然後,我們再將指令碼新增到/etc/rc.d/rc.local檔案最後一行: $vim/etc/rc.d/rc.local /home/alvin/auto_run_script.sh 碼接下來,我們就可以試試效果了。

直接重啟系統就可以了: $sudoreboot 重啟之後,就會在家目錄下看到指令碼執行的結果了。

方法二:使用crontab 大家知道,crontab是Linux下的計劃任務,當時間達到我們設定的時間時,可以自動觸發某些指令碼的執行。

我們可以自己設定計劃任務時間,然後編寫對應的指令碼。

但是,有個特殊的任務,叫作@reboot,我們其實也可以直接從它的字面意義看出來,這個任務就是在系統重啟之後自動執行某個指令碼。

那它將執行的是什麼指令碼呢?我們如何去設定這個指令碼呢?我們可以通過crontab-e來設定。

然後,直接重啟即可。

執行的效果跟上面類似。

方法三:使用systemd服務 以上介紹的兩種方法,在任何Linux系統上都可以使用。

但本方法僅適用於systemd系統。

如何區分是不是systemd系統?很簡單,只需執行psaux命令,檢視pid為1的程序是不是systemd。

為了實現目的,我們需要建立一個systemd啟動服務,並把它放置在/etc/systemd/system/目錄下。

我們建立的systemd啟動服務如下。

請注意,這時後綴是.service,而不是.sh。

[Unit] Description=RunaCustomScriptatStartup After=default.target [Service] ExecStart=/home/alvin/auto_run_script.sh [Install] WantedBy=default.target 從服務的內容可以看出來,我們最終還是會呼叫/home/alvin/auto_run_script.sh這個指令碼。

然後,我們再把這個指令碼放置在/etc/systemd/systerm/目錄下,之後我們再執行下面兩條命令來更新systemd配置檔案,並啟動服務。

$systemctldaemon-reload$systemctlenableauto_run_script.service 萬事俱備之後,我們就可以重啟系統啦。

$reboot 【雲棲號線上課堂】每天都有產品技術專家分享!課程地址:https://yqh.aliyun.com/live 立即加入社群,與專家面對面,及時瞭解課程最新動態!【雲棲號線上課堂社群】https://c.tb.cn/F3.Z8gvnK 原文釋出時間:2020-06-11本文作者:良許Linux本文來自:“掘金”,瞭解相關資訊可以關注“掘金” 「其他文章」 企業IT採購最佳時機 阿里雲雙11來襲:百款超低價產品普惠上雲 如何讓一套程式碼適配所有iOS裝置尺寸? 螞蟻王旭:開源協作如何提升業界的安全? 1024,阿里雲驚喜“加油包”讓你“猿”力覺醒! 應用架構之道:分離業務邏輯和技術細節 小紅書推薦大資料在阿里雲上的實踐 基於阿里雲平臺的大資料教學案例——B站彈幕資料分析 阿里雲DNS新增雲上線路的智慧解析功能 平臺式可複用的應用整合能力,助您敏捷、高效的完成企業數字化轉型 什麼是物聯網?常見IoT物聯網協議最全講解 進擊的資料中臺,企業數字化轉型的新引擎 全新上線:DataV移動端畫布編輯器 揭祕:技術風險如何保障支付寶的穩定性? 淺談MaxCompute資源規劃管理及評估 “三清”博士與支付寶機密計算背後的故事 資料湖VS資料倉庫之爭?阿里提出大資料架構新概念:湖倉一體 螞蟻御術:我的前端十年成長之路 Hologres在阿里搜尋推薦實時資料場景下即席多維分析的最佳實踐 【資料湖開發治理篇】——資料湖開發治理平臺DataWorks ServerlessSpark的彈性利器-EMRShuffleService 「linux」 LWN:刪除a.out支援! Linux基礎篇——Linux網路配置(配置網絡卡、固定IP,固定hostname,終端遠端)詳解 Collision:一個驗證你的檔案是否被篡改的開源應用|Linux中國 MetadataCleaner:在Linux中清除你在圖片和檔案中的痕跡|Linux中國 華為員工辭職創辦晶片公司,身家165億 我最喜歡在Linux上玩的休閒遊戲|Linux中國 Linux運維必備技能:如何在Vim中刪除多行? 使用Sourcegraph搜尋34000多個Fedora倉庫 在M1晶片上跑原生Linux:編譯速度比macOS還快40% (九)JVM成神路之效能調優、GC除錯、各記憶體區、Linux引數大全及實用小技巧 「指令碼」 還在手動gitadd,gitcommit?自動化釋出node指令碼來拯救你!(搭建react元件庫2---node釋出指令碼) 清明疫情期間,在家鍊金日記(python打造類似jenkins的任務控制指令碼,基於pyQt5) pythonpytest介面自動化(12)-自動化用例編寫思路(使用pytest編寫一個測試指令碼) autojs操作列表-下載指令碼商店程式碼 【Flutter】從安卓與iOS包體優化到一鍵自動打包指令碼的一條龍服務 最全的Linux運維bash指令碼常見用法總結 sqlmap繞過防火牆的tamper指令碼大全 Shell指令碼 多裝置除錯adb指令碼 再見Jenkins!幾行指令碼搞定自動化部署,這款神器有點厲害!



請為這篇文章評分?