0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

技術(shù)分享 | Linux系統(tǒng)下systemctl常用命令以及service文件配置

啟揚ARM嵌入式開發(fā) ? 2022-09-22 09:37 ? 次閱讀

linux服務管理的兩種方式為service和systemctl。systemd是Linux系統(tǒng)最新的初始化系統(tǒng)(init),作用是提高系統(tǒng)的啟動速度,盡可能啟動較少的進程,盡可能并發(fā)啟動更多進程。systemd對應的進程管理命令是systemctl。

systemctl命令用法

1. 列出所用可用單元

systemctl list-unit-files

2. 列出所有運行中的單元

systemctl list-units

3. 檢查某個單元(如 crond.service)是否啟用

systemctl is-enabled crond.service

4. 列出所有服務

systemctl list-unit-files ?Ctype=service

5. Linux中如何啟動、重啟、停止、重載服務以及檢查服務(如 httpd.service)狀態(tài)

systemctl start httpd.service
systemctl restart httpd.service
systemctl stop httpd.service
systemctl reload httpd.service
systemctl status httpd.service

6. 如何激活服務并在開機時啟用或禁用服務(即系統(tǒng)啟動時自動啟動mysql.service服務)

systemctl is-active mysql.service
systemctl enable mysql.service
systemctl disable mysql.service

7. 如何屏蔽(讓它不能啟動)或顯示服務(如ntpdate.service)

systemctl mask ntpdate.service

ln -s '/dev/null' '/etc/systemd/system/ntpdate.service'

systemctl unmask ntpdate.service

rm '/etc/systemd/system/ntpdate.service'

8. 使用systemctl命令殺死服務

systemctl kill crond

編寫一個服務

1. 添加服務文件

在/lib/systemd/system/文件目錄下添加.service服務文件;

2. 編寫.service文件

[Unit]

Description=test for service

ConditionFileIsExecutable=/etc/init.d/tst.sh

After=weston.service

[Service]

Type=forking

ExecStart=-/etc/init.d/tst.sh start

ExecStop=-/etc/init.d/tst.sh stop

[Install]

WantedBy=multi-user.target

從上面可以看出.serive文件包括三個部分:[Unit]、[Service]、[Install]。

[Unit]

Description:對當前服務的簡單描述。

After:指定.serive在哪些服務之后進行啟動;

Before:指定.serive在哪些服務之前進行啟動;

除上述內(nèi)容,文件中還可能出現(xiàn)以下內(nèi)容:

Requires:指定服務依賴于哪些服務(強依賴關(guān)系,一旦所依賴服務異常,當前服務也隨之停止);

Wants:指定服務依賴于哪些服務(弱依賴關(guān)系,所依賴服務異常不影響當前服務正常運行)。

[Service]

Type:定義啟動類型。可設置:simple,exec,forking,oneshot,dbus,notify,idle。

simple:ExecStart 字段啟動的進程為該服務的主進程;

forking:ExecStart 字段的命令將以 fork() 方式啟動,此時父進程將會退出,子進程將成為主進程;

ExecStart:定義啟動進程時執(zhí)行的命令;

ExecStop:停止服務時執(zhí)行的命令;

除上述內(nèi)容外,文件中還可能出現(xiàn):

EnvironmentFile:環(huán)境配置文件,用來指定當前服務啟動的環(huán)境變量;

ExecReload:重啟服務時執(zhí)行的命令;

ExecStartPre:啟動服務之前執(zhí)行的命令;

ExecStartPost:啟動服務之后執(zhí)行的命令;

ExecStopPost:停止服務之后執(zhí)行的命令;

RemainAfterExit:設為yes,表示進程退出以后,服務仍然保持執(zhí)行;

RestartSec:重啟服務之前需要等待的秒數(shù)。

KillMode:定義 Systemd 如何停止服務,可以設置的值如下:

control-group(默認值):當前控制組里面的所有子進程,都會被殺掉;

process:只殺主進程;

mixed:主進程將收到 SIGTERM 信號,子進程收到 SIGKILL 信號;

none:沒有進程會被殺掉。

Restart:定義了退出后,Systemd 的重啟方式。

可以設置的值如下:

no(默認值):退出后不會重啟;

on-success:當進程正常退出時(退出狀態(tài)碼為0),才會重啟;

on-failure:當進程非正常退出時(退出狀態(tài)碼非0),包括被信號終止和超時,才會重啟;

on-abnormal:當被信號終止和超時,才會重啟;

on-abort:當收到?jīng)]有捕捉到的信號終止時,才會重啟;

on-watchdog:看門狗超時退出,才會重啟;

always:總是重啟。

[Install]

Install一般填為WantedBy=multi-user.target,表示多用戶環(huán)境下服務被啟用。

3. 設置開機自啟動

systemctl enable (服務名)

4. 查詢服務狀態(tài)

systemctl status (服務名)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11326

    瀏覽量

    209961
收藏 人收藏

    評論

    相關(guān)推薦

    Linux實時查看日志的四種命令詳解

    如何在Linux中實時查看日志文件的內(nèi)容?那么有很多實用程序可以幫助用戶在文件更改或不斷更新時輸出文件的內(nèi)容。在Linux中實時顯示
    的頭像 發(fā)表于 01-13 10:45 ?139次閱讀
    <b class='flag-5'>Linux</b>實時查看日志的四種<b class='flag-5'>命令</b>詳解

    嵌入式開發(fā)必備-RK3562演示Linux常用系統(tǒng)查詢命令

    本文介紹Linux系統(tǒng)查看硬件配置常用調(diào)試命令,方便開發(fā)者快速了解開發(fā)板硬件信息及進行相關(guān)調(diào)試
    的頭像 發(fā)表于 01-06 14:13 ?95次閱讀
    嵌入式開發(fā)必備-RK3562演示<b class='flag-5'>Linux</b><b class='flag-5'>常用</b><b class='flag-5'>系統(tǒng)</b>查詢<b class='flag-5'>命令</b>

    嵌入式開發(fā)必備-RK3562演示Linux常用系統(tǒng)查詢命令

    本文繼續(xù)介紹Linux系統(tǒng)查看硬件配置常用調(diào)試命令,方便開發(fā)者快速了解開發(fā)板硬件信息及進行相關(guān)調(diào)試。觸覺智能RK3562開發(fā)板演示
    的頭像 發(fā)表于 01-03 13:54 ?238次閱讀
    嵌入式開發(fā)必備-RK3562演示<b class='flag-5'>Linux</b><b class='flag-5'>常用</b><b class='flag-5'>系統(tǒng)</b>查詢<b class='flag-5'>命令</b>(<b class='flag-5'>下</b>)

    docker-compose配置文件內(nèi)容詳解以及常用命令介紹

    一、Docker Compose 簡介 Docker Compose是一種用于定義和運行多容器Docker應用程序的工具。通過一個? docker-compose.yml ?文件,您可以配置應用程序
    的頭像 發(fā)表于 12-02 09:29 ?865次閱讀
    docker-compose<b class='flag-5'>配置文件</b>內(nèi)容詳解<b class='flag-5'>以及</b><b class='flag-5'>常用命令</b>介紹

    Linux常用命令

    快捷鍵 ln -s /data /home/nvidia/ vi 查看文件命令,例如: vi xxx.log 退出方式::+q+回車 tail 顯示文件后幾行,例如: tail xxx.log 也可以
    的頭像 發(fā)表于 11-06 16:04 ?155次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>常用命令</b>

    詳解kubectl常用命令

    詳解kubectl常用命令
    的頭像 發(fā)表于 11-05 15:39 ?294次閱讀
    詳解kubectl<b class='flag-5'>常用命令</b>

    Linux用命令大全

    Linux用命令大全
    的頭像 發(fā)表于 10-23 13:50 ?263次閱讀
    <b class='flag-5'>Linux</b>實<b class='flag-5'>用命令</b>大全

    Linux磁盤分區(qū)擴容方法

    linux分區(qū)常用命令:fdisk,修改MBR分區(qū)表,MBR格式,被修改的分區(qū)大小最大為2T。
    的頭像 發(fā)表于 10-23 11:46 ?540次閱讀
    <b class='flag-5'>Linux</b>磁盤分區(qū)擴容方法

    shell基本介紹及常用命令之shell介紹

    提示符是“$”,在命令提示符后邊輸入命令即可和系統(tǒng)進行交互操作。Ubuntu默認的Shell是Bash(Bourne Again Shell)。Linux
    發(fā)表于 08-15 09:28

    Windows操作系統(tǒng)中的常用命令

    這些命令不僅能提高工作效率,還能幫助用戶解決許多復雜的問題。本系列文章將詳細介紹Windows操作系統(tǒng)中的常用命令,幫助你成為Windows極客!
    的頭像 發(fā)表于 08-07 15:40 ?687次閱讀
    Windows操作<b class='flag-5'>系統(tǒng)</b>中的<b class='flag-5'>常用命令</b>

    iptables 工具常用命令規(guī)則有哪些

    規(guī)則。 sudo iptables-restore < /etc/iptables/rules.v4 請注意,在應用 iptables 規(guī)則之前,請確保您了解這些規(guī)則的含義以及它們將如何影響您的系統(tǒng)安全性和網(wǎng)絡連接。建議在進行更改之前備份您的 iptables
    發(fā)表于 06-12 15:42

    Jlink.exe(Jlink commander)的常用命令

    前面有給大家分享過如何通過Jlink查看GD32芯片跑飛后程序死在哪里?里面用到了Jlink.exe(Jlink commander),今天再來介紹這個工具的幾個常用命令。
    的頭像 發(fā)表于 02-27 09:31 ?6129次閱讀
    Jlink.exe(Jlink commander)的<b class='flag-5'>常用命令</b>

    linux常用命令有哪些

    1.系統(tǒng)常用命令 1、 目錄信息查看命令 ls 參數(shù)如下: -a 顯示所有的文件以及子目錄,包括以“ .”開頭的隱藏
    的頭像 發(fā)表于 02-04 15:06 ?490次閱讀

    Linux常用命令自學手冊》工具書永遠是常備的秘籍

    Linux命令,涵蓋了系統(tǒng)管理、文件操作、網(wǎng)絡配置等多個方面。這些命令都是
    發(fā)表于 01-29 19:42

    全志H616核桃派系統(tǒng)終端和常用命令介紹

    桌面系統(tǒng)打開終端?終端(Termianal)要追溯到早期的計算機時代,那時候還沒有可視化桌面,很多計算機操作都是通過終端命令完成。 到現(xiàn)在我們依然很多場合和調(diào)試會用到,掌握 linux 常用
    發(fā)表于 01-25 14:54