Systemd實踐 依據情況自動重啟服務

2021-09-27 05:26:49 字數 1791 閱讀 6893

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

[unit]  description=mytest  [service]  type=******  execstart=/root/mytest.sh  restart=always  restartsec=5  startlimitinterval=0  [install]  wantedby=multi-user.target
restartpreventexitstatus=143 137 sigterm sigkill
[unit]  description=mytest  [service]  type=******  execstart=/root/mem  restart=always  restartsec=5  startlimitinterval=0  restartpreventexitstatus=sigkill  [install]  wantedby=multi-user.target
#include #include #include #include #include int main ()            memset(p, 0, 1024*1024*100);          printf("malloc %dm memory\n", 100*count++);          usleep(500000);      }  }
gcc -o /root/mem /root/mem.c  systemctl daemon-reload  systemctl start mytest
[root@fzxiaomange ~]# systemctl status mytest  ● mytest.service - mytest     loaded: loaded (/usr/lib/systemd/system/mytest.service; disabled; vendor preset: disabled)     active: failed (result: signal) since sat 2018-10-20 23:32:24 cst; 45s ago    process: 10555 execstart=/root/mem (code=killed, signal=kill)   main pid: 10555 (code=killed, signal=kill)  oct 20 23:31:55 fzxiaomange.com systemd[1]: started mytest.  oct 20 23:31:55 fzxiaomange.com systemd[1]: starting mytest...  oct 20 23:32:24 fzxiaomange.com systemd[1]: mytest.service: main process exited, code=killed, status=9/kill  oct 20 23:32:24 fzxiaomange.com systemd[1]: unit mytest.service entered failed state.  oct 20 23:32:24 fzxiaomange.com systemd[1]: mytest.service failed.
pid

:10555

(code

=killed

,signal

=kill

),這行表示主程序的狀態,常見有2種情況

-訊號測試時,會是什麼情況呢,先貼出測試方法

#!/bin/bash  sleep 100000 &  sleep 200000

systemd實踐 依據情況自動重啟服務

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

systemd自動重啟引數設定

systemctl是乙個systemd工具,主要負責控制systemd系統和服務管理器。systemd是乙個系統管理守護程序 工具和庫的集合,用於取代system v初始程序。systemd的功能是用於集中管理和配置類unix系統。案例 unit description meross rpc ser...

lodash實踐之依據規則處理物件

在實際開發中,如果你遇到需要對乙個比較複雜的物件刪除某些變數,或者替換某些變數的場景,你會怎麼處理呢?比如 const target c 1,d 你需要對target物件做以下處理 刪除a和b.n引數,並且b.m如果小於2的話進行刪除 替換c值和d.n值為9,並且替換d.m的值為 a c 你是否採用...