欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

Systemd 按情況自動重啟服務

前言

systemd服務異常自動重啟很好用,但有的時候希望某些服務只在特定情況下進行重啟,其他時候不要自動重啟(比如OOM,需要人工介入)。
本文拋磚引玉,旨在能夠讓讀者對systemd的重啟機制有一定了解。

自動重啟范例

[Unit]
Description=mytest

[Service]
Type=simple
ExecStart=/root/mytest.sh
Restart=always
RestartSec=5
StartLimitInterval=0

[Install]
WantedBy=multi-user.target

參數詳解

Restart=always: 只要不是通過systemctl stop來停止服務,任何情況下都必須要重啟服務,默認值為no
RestartSec=5: 重啟間隔,比如某次異常后,等待5(s)再進行啟動,默認值0.1(s)
StartLimitInterval: 無限次重啟,默認是10秒內如果重啟超過5次則不再重啟,設置為0表示不限次數重啟

RestartPreventExitStatus參數

查詢man systemd.service發現,systemd的[Service]段落里支持一個參數,叫做RestartPreventExitStatus。該參數從字面上看,意思是當符合某些退出狀態時不要進行重啟。該參數的值支持exit code和信號名2種,可寫多個,以空格分隔,例如:

RestartPreventExitStatus=143 137 SIGTERM SIGKILL

表示,當退出情況只要符合以下4種情況中任意一種時候,則不再進行重啟

exit code為143
exit code為137
信號為TERM
信號為KILL

注意事項

RestartPreventExitStatus與Restart的關系

配置RestartPreventExitStatus=后,并沒有完全忽略Restart=,而是指當退出情況與RestartPreventExitStatus=匹配的時候,才忽略Restart=,若沒有匹配,根據Restart=該怎么樣還怎么樣(具體詳見后面的擴展部分)

kill子進程會是什么情況

若systemd啟動的不是一個簡單進程,而是會派生子進程的情況(比如執行shell腳本,shell腳本里啟動多個程序),那么當另外開一個窗口通過kill -信號測試時,會是什么情況呢,測試方法如下:

ExecStart=/root/mem改為ExecStart=/root/mytest.sh

/root/mytest.sh內容為

#!/bin/bash
sleep 100000 &
sleep 200000

總結

Systemd在某些進程維護上還是很方便的,自動重啟在很多業務上是有需求的,比如服務器。但是需要自己做簡單測試才能判斷出來正確狀況。比如很多時候 kill -9 不會自動重啟,就需要考慮到。有些復雜,需要慢慢理解。

文章鏈接: http://www.qzkangyuan.com/26065.html

文章標題:Systemd 按情況自動重啟服務

文章版權:夢飛科技所發布的內容,部分為原創文章,轉載請注明來源,網絡轉載文章如有侵權請聯系我們!

聲明:本站所有文章,如無特殊說明或標注,均為本站原創發布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發布本站內容到任何網站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
運維技術

Linux下通過命令連接wifi

2023-12-14 16:06:00

運維技術

Ubuntu 18+ 如何配置網絡

2023-12-18 11:05:40

0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索

夢飛科技 - 最新云主機促銷服務器租用優惠

主站蜘蛛池模板: 仁怀市| 马关县| 蒲江县| 子洲县| 六盘水市| 许昌县| 三原县| 贺兰县| 蒲城县| 古蔺县| 潍坊市| 通山县| 广宗县| 延长县| 科尔| 临泽县| 大田县| 万全县| 金华市| 眉山市| 洱源县| 肃宁县| 溧阳市| 华蓥市| 内黄县| 兴海县| 竹北市| 平原县| 尉氏县| 炉霍县| 黄冈市| 铜山县| 乌拉特后旗| 柳林县| 巴彦淖尔市| 开封市| 仲巴县| 文昌市| 扎兰屯市| 五指山市| 定兴县|