电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

一文教你如何自定義systemd開機啟動腳本

瀏覽:168日期:2023-09-14 20:49:07
目錄systemd簡介腳本存放位置腳本簡介執(zhí)行腳本命令查看日志實戰(zhàn)開機啟動Elasticsearch開機啟動springboot項目springboot.servicesystemd簡介

systemd 是一個系統(tǒng)守護進程(init 系統(tǒng)),用于管理 Linux 操作系統(tǒng)的啟動、運行和關閉過程。它被廣泛采用作為 Linux 發(fā)行版的默認 init 系統(tǒng),如 Ubuntu、Fedora 和 CentOS。

以下是 systemd 的一些關鍵特點和功能:

啟動管理:systemd 使用并行啟動來提高系統(tǒng)啟動速度,并支持啟動任務的優(yōu)先級和依賴關系設置。它可以同時處理服務、套接字和設備文件的啟動。服務管理:systemd 通過提供單元文件(unit files)來管理系統(tǒng)服務。每個服務都有對應的配置文件,您可以在其中定義服務的屬性、行為和依賴關系。同時,systemd 還提供了強大的日志記錄、故障排除和錯誤報告機制。日志管理:systemd-journald 是 systemd 內(nèi)置的日志管理器,負責收集、存儲和檢索系統(tǒng)日志信息。它支持結構化日志、日志轉(zhuǎn)發(fā)和高性能查詢功能。設備管理:systemd 可以監(jiān)控和管理系統(tǒng)中的設備,包括磁盤驅(qū)動器、網(wǎng)絡接口和輸入設備等。它提供了 udev 規(guī)則來自動處理設備事件,例如插入或移除設備時觸發(fā)相應操作。用戶會話管理:systemd 提供了用戶會話管理功能,它可以啟動和監(jiān)控用戶會話,以及處理用戶登錄和注銷過程。這對于支持多用戶環(huán)境并提供長時間運行的會話非常有用。定時任務管理:systemd-timers 模塊允許您定義和管理定時任務(類似于 crontab),可以精確地調(diào)度任務運行,并提供靈活的配置選項。

總體而言,systemd 提供了一個集成的、強大而靈活的系統(tǒng)管理框架,它改善了 Linux 系統(tǒng)的啟動速度、進程管理、日志記錄和設備管理等方面的性能和功能。因其廣泛采用和豐富的功能,熟悉 systemd 對于 Linux 系統(tǒng)管理員和開發(fā)人員來說是非常重要的。

腳本存放位置/etc/systemd/system:系統(tǒng)管理員安裝的單元, 優(yōu)先級更高

/usr/lib/systemd/system:該目錄中包含的是軟件包安裝的單元,也就是說通過 yum、dnf、rpm 等軟件包管理命令管理的 systemd 單元文件,都放置在該目錄下

目錄/lib/systemd/system 以及/usr/lib/systemd/system 其實指向的是同一目錄

腳本簡介

在/usr/lib/systemd/system下創(chuàng)建文件nginx.service,并賦予權限chmod +x nginx.service

[Unit]?Description=nginx service# 要求必須執(zhí)行網(wǎng)絡Requires=network-online.target# 在網(wǎng)絡啟動之后啟動After=network.target[Service]# 工作目錄WorkingDirectory=/yourpath/infra/nginxType=forkingUser=root# systemctl start nginxExecStart=/yourpath/infra/nginx/sbin/nginx -c /yourpath/infra/nginx/conf/nginx.conf# systemctl start reloadExecReload=/yourpath/infra/nginx/sbin/nginx -s reload?[Install]WantedBy=multi-user.target?在 [Unit] 部分,您可以提供對服務的描述和定義其依賴關系。After=network.target 表示該服務將在網(wǎng)絡啟動后啟動。在 [Service] 部分,指定要執(zhí)行的腳本路徑。請將 /path/to/your/script.sh 替換為您實際的腳本路徑。[Install] 部分用于指定啟動級別。WantedBy=default.target 表示該服務將隨系統(tǒng)默認目標一起啟動。

在 Systemd 中,Type 是一個服務單元文件中的參數(shù),它是用來指定服務類型的。一個服務可能有以下幾種類型:

simple:服務主進程不會以守護進程方式運行,即服務進程在啟動后會一直運行,并占據(jù)終端。當服務進程退出時,Systemd 認為服務已經(jīng)停止運行。forking:服務主進程以守護進程方式運行。在啟動服務后,服務主進程會將控制權交給子進程來執(zhí)行實際的任務。此時,服務主進程會退出,但服務并沒有結束。當子進程退出時,Systemd 認為服務已經(jīng)停止運行。oneshot:服務主進程會被執(zhí)行一次,然后退出。當服務主進程退出時,Systemd 認為服務已經(jīng)停止運行。dbus:該類型的服務主要是以消息總線的方式提供服務,通常是由 D-Bus 庫和 Systemd 搭配使用。notify:該類型的服務主要是通過向 Systemd 發(fā)送通知來表示服務已經(jīng)啟動完畢,例如在 MySQL 服務中,主進程在成功啟動之后會向 Systemd 發(fā)送一個 READY=1 的通知。

不同的服務類型會對應不同的邏輯,具體使用哪種類型取決于服務運行的特點和需求。

執(zhí)行腳本命令# 重新加載systemdsystemdctl daemon-reload?# 將 nginx.service 加入到開機啟動systemctl enable nginx.service?# 卸載 nginx.servicesystemctl disable nginx.service?# 手動啟動systemctl start nginx.service

查看日志

/var/log/messages:存放的是系統(tǒng)的日志信息,它記錄了各種事件,基本上什么應用都能往里寫日志,在做故障診斷時可以首先查看該文件內(nèi)容

方式一:

journalctl -u nginx.service

方式二:

tail -f messages

至此,如果使用命令能夠啟動成功,一般開機也會自啟動,無需手動執(zhí)行

實戰(zhàn)開機啟動Elasticsearch

elasticsearch.service

在/usr/lib/systemd/system下創(chuàng)建文件elasticsearch.service,并賦予權限chmod +x elasticsearch.service

[Unit]?Description=elasticsearch service# 要求必須執(zhí)行網(wǎng)絡#Requires=network-online.target# 在網(wǎng)絡啟動之后啟動After=network.target[Service]WorkingDirectory=/yourpath/infra/elasticsearch-7.17.4?LimitNOFILE=100000LimitNPROC=100000?Type=forking?# 由于es不可以使用root啟動,這里使用test用戶User=test# 啟動腳本ExecStart=/bin/sh /yourpath/infra/elasticsearch-7.17.4/start.sh?#Restart=on-failure?[Install]WantedBy=multi-user.target?

重點解釋,LimitNOFILE和LimitNPROC

LimitNOFILE:

LimitNOFILE是用于設置進程的文件描述符限制的參數(shù)。

文件描述符是操作系統(tǒng)為進程分配的用于訪問文件和其他輸入/輸出資源的標識符。每個進程都有一個限制,決定了它可以同時打開的文件數(shù)量。

LimitNOFILE參數(shù)用于設置進程可以打開的文件描述符的最大數(shù)量。通過限制文件描述符的數(shù)量,可以控制進程對系統(tǒng)資源(如文件、套接字等)的使用情況。

在啟動腳本中設置LimitNOFILE的值可以影響到該進程及其子進程的文件描述符限制。例如,如果將LimitNOFILE設置為1000,則該進程及其子進程最多只能同時打開1000個文件。

LimitNPROC:

每個進程在操作系統(tǒng)中都有一個相關的進程數(shù),表示該進程所創(chuàng)建或派生的子進程數(shù)量。操作系統(tǒng)為每個用戶和系統(tǒng)范圍內(nèi)的進程數(shù)都有一個上限限制。

通過使用LimitNPROC參數(shù),可以限制進程及其子進程可以同時存在的最大數(shù)量。一旦達到該限制,進程將無法創(chuàng)建更多的子進程。這有助于控制系統(tǒng)資源(如內(nèi)存、處理器等)的使用情況,防止某個進程或用戶占用過多的系統(tǒng)資源。

在啟動腳本中設置LimitNPROC的值可以影響到該進程及其子進程的并發(fā)進程數(shù)限制。例如,如果將LimitNPROC設置為100,則該進程及其子進程最多只能同時存在100個進程

可以嘗試不設置這兩個參數(shù),看看會發(fā)生什么問題

啟動Elasticsearch腳本

#!/bin/shsu test/yourpath/infra/elasticsearch-7.17.4/bin/elasticsearch -d

相關命令

systemctl enable elasticsearch.servicesystemctl disable elasticsearch.servicesystemctl start elasticsearch.serviceps -ef | grep elasticsearch開機啟動springboot項目springboot.service

在/usr/lib/systemd/system下創(chuàng)建文件springboot.service,并賦予權限chmod +x springboot.service

[Unit]?Description=springboot service# 要求必須執(zhí)行網(wǎng)絡#Requires=network-online.target# 在網(wǎng)絡啟動之后啟動After=network.target[Service]WorkingDirectory=/yourpath/app/springboot?Type=forkingUser=root# 啟動前,等待10sExecStartPre=/bin/sleep 10ExecStart=/bin/sh /yourpath/app/springboot/start.sh?# 不輸出日志StandardOutput=nullStandardError=null?[Install]WantedBy=multi-user.target?

解釋:

ExecStartPre:當啟動springboot.service時,會先等待10s再啟動,例如,項目依賴了mysql,而mysql啟動需要時間。StandardOutput,StandardError:配置了這兩個為null,意思是springboot項目自身的日志,就不打印再/var/log/message中,因為springboot項目自身有日志管理

啟動springboot腳本

#!/bin/sh/bin/nohup /youpath/infra/jdk1.8.0_341/bin/java -jar /lbpdata/app/springboot/bootstrap-1.0.0.jar --server.servlet.context-path=/test --spring.config.location=application-test.yml >/dev/null 2>&1 &

我們在寫腳本之時,最好都要寫,完整的指令路徑,不然經(jīng)常會報找不到指令

相關命令

systemctl enable springboot.servicesystemctl disable springboot.servicesystemctl start springboot.servicejps -l

以上就是一文教你如何自定義systemd開機啟動腳本的詳細內(nèi)容,更多關于自定義systemd開機腳本的資料請關注好吧啦網(wǎng)其它相關文章!

標簽: Linux
主站蜘蛛池模板: 盐城网络公司_盐城网站优化_盐城网站建设_盐城市启晨网络科技有限公司 | 噪声治理公司-噪音治理专业隔音降噪公司 | 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 天津仓储物流-天津电商云仓-天津云仓一件代发-博程云仓官网 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 管理会计网-PCMA初级管理会计,中级管理会计考试网站 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 济南侦探调查-济南调查取证-山东私家侦探-山东白豹调查咨询公司 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 山东螺杆空压机,烟台空压机,烟台开山空压机-烟台开山机电设备有限公司 | 恒湿机_除湿加湿一体机_恒湿净化消毒一体机厂家-杭州英腾电器有限公司 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 对辊破碎机_四辊破碎机_双齿辊破碎机_华盛铭重工 | 长沙网站建设制作「网站优化推广」-网页设计公司-速马科技官网 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | TTCMS自助建站_网站建设_自助建站_免费网站_免费建站_天天向上旗下品牌 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 科箭WMS仓库管理软件-TMS物流管理系统-科箭SaaS云服务 | 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 | 透平油真空滤油机-变压器油板框滤油机-滤油车-华之源过滤设备 | 安徽净化工程设计_无尘净化车间工程_合肥净化实验室_安徽创世环境科技有限公司 | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 智能终端_RTU_dcm_北斗星空自动化科技 | 钢化玻璃膜|手机钢化膜|钢化膜厂家|手机保护膜-【东莞市大象电子科技有限公司】 | 电动葫芦|手拉葫芦|环链电动葫芦|微型电动葫芦-北京市凌鹰起重机械有限公司 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | R507制冷剂,R22/R152a制冷剂厂家-浙江瀚凯制冷科技有限公司 | 地磅-电子地磅维修-电子吊秤-汽车衡-无人值守系统-公路治超-鹰牌衡器 | 江苏齐宝进出口贸易有限公司| 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 防火板_饰面耐火板价格、厂家_品牌认准格林雅 | 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 滑石粉,滑石粉厂家,超细滑石粉-莱州圣凯滑石有限公司 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 油罐车_加油机_加油卷盘_加油机卷盘_罐车人孔盖_各类球阀_海底阀等车用配件厂家-湖北华特专用设备有限公司 | 万师讲师网-优质讲师培训师供应商,讲师认证,找讲师来万师 |