Skip to content
  • 熱門
  • 趨勢
  • 精選

Forgot Password?

← Back to login
世界圖譜
世界圖譜
  • 熱門
  • 趨勢
  • 精選
登入
訂閱
世界圖譜
世界圖譜

如何將您自己的服務添加到 systemd 以便於管理

  • 2023-07-14
  • Ann

Linux 服務器被設計為始終工作; 而不是手動啟動重要的程序並將它們留在 tmux 會話,您需要將它們添加到 systemd 作為一項服務,它將在啟動時自動啟動,並在發生錯誤時重新啟動。

Systemd 將服務的配置存儲在兩個地方。 第一個是 /lib/systemd/system/,您可以在其中找到系統上許多服務的配置。 大多數軟件安裝都在這里安裝服務。 第二個是 /etc/systemd/system/這取消了 /lib/systemd 目錄,一般用於放置用戶創建的服務。 還有 /etc/systemd/users/它為單個登錄用戶運行服務,例如獲取郵件。

其中許多服務並不像 nginx 或 MySQL 會做。 您可以打印當前正在使用的服務列表:

service --status-all

帶“+”符號的服務正在運行,帶“-”符號的服務當前已停止。 您可以通過以下方式查看更詳細的信息:

service status nginx

由於服務在後台運行,因此它們不會將輸出記錄到控制台,而是將輸出記錄到 systemd 日誌。 “status”命令將顯示該日誌的最後幾行,但您可以直接使用以下命令讀取它:

journalctl -fn 50 -u nginx

此命令打印 50 個最近的日誌條目(-n)來自 nginx 服務(-u)。 它被配置為打印所有內容並從底部開始,跟踪創建的新日誌條目(-f)。

當然,許多應用程序仍然會將大部分內容寫入其訪問或錯誤日誌,因此請務必檢查這些日誌。 日誌會跟踪直接記錄到控制台的內容,這對於調試您自己的服務非常有用。

簡單的服務設置

Systemd 用於許多事情 Linux; 它驅動的每個對象稱為一個單元,並且有一個相應的“單元文件”來定義它們是什麼。 這些可以是簡單的服務,例如 nginx 或 MySQL,也可以是掛載點、設備、套接字等 還有很多其他的事情,全部由systemd管理。 單位也可以 目標用於控制其他服務何時運行(即在網絡初始化之後)。

但是,對於此用例,您可能只想將應用程序配置為基本服務。 為此,您需要創建一個新的驅動器文件,並將其放置在 /etc/systemd/system/ 並命名為 .service 擴大:

touch /etc/systemd/system/myapp.service

單元文件有幾個不同的部分,但一般來說它們看起來像這樣:

[Unit]
Description=Example Service
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=serviceuser
ExecStartPre=
ExecStart=/path/to/executable [options]
ExecStartPost
ExecStop=
ExecReload=

[Install]
WantedBy=multi-user.target

首先, [Unit] 部分,它定義了一系列有關驅動器的元數據。 他 After= 指令可用於延遲驅動器激活,直到啟動另一個驅動器,例如 network或其他服務,例如 mysql.service 這並不會讓您嚴格依賴該服務,儘管您可以使用 Requires= 哦 Wants= 指令。 此部分還配置了 systemd 完全放棄之前單元嘗試啟動的最大次數; 因為您可能希望它繼續嘗試,所以您可以將其設置為 0 以禁用此行為。

接下來是 [Service] 部分,特定於服務單元文件。 您將在此處配置 Exec 選項。 User 將以給定用戶身份運行該服務。 您可以將其設置為您的個人用戶帳戶、root 或自定義服務帳戶。 只需確保用戶有足夠的權限來完成他們的工作即可。

這裡有一些不同的指令來指定要運行的程序。 ExecStartPre 它將首先運行,允許您在服務實際啟動之前進行任何必要的配置。 ExecStart 是主要的可執行文件。 ExecStartPost 追趕,並且 ExecStop 當服務關閉時運行。 ExecReload 是一個特殊指令,當您調用“reload”而不是重新啟動時使用。 這允許您在運行時執行配置重新加載,只要您的應用程序具有此功能。

最後, [Install] 部分,它定義了與 systemd 處理單元的方式相關的更多行為。 這最常用於指定 WantedBy= 指令,用於告訴 systemd 何時啟動其服務,並在目標及其依賴單元之間創建符號鏈接。 如果您不確定使用哪個鏡頭, multi-user.target 幾乎所有內容都加載後,它將在啟動時運行服務。

一般來說,設置非常簡單,您真正要做的就是將可執行文件作為參數傳遞給 [Service] 部分。 創建服務後,您需要重新加載 systemctl 守護進程以更新您的更改:

sudo systemctl daemon-reload

並啟用它(這將在啟動時運行它,具體取決於驅動器配置):

sudo systemctl enable myapp

然後啟動服務:

sudo service myapp start

該服務現在應該在後台運行,您可以檢查 journalctl 查看你的輸出。 如果它出來了 systemd 它會再次自動啟動它,並且它應該在啟動時與系統上的其他服務一起運行。

如果您需要重新啟動服務,可以使用:

sudo service myapp restart

這將執行 ExecStop= 指令,關閉設備並再次打開。

相關貼文

如何獲取傳真號碼 Google 自由的

如何獲取傳真號碼 Google 自由的

修復:“Time Machine 無法完成備份”錯誤 Mac

修復:“Time Machine 無法完成備份”錯誤 Mac

Windows 11 已確認:我們從洩露版本中了解到了什麼

Windows 11 已確認:我們從洩露版本中了解到了什麼

如何啟用或禁用透明效果 Windows 11?

如何啟用或禁用透明效果 Windows 11?

已解決:HP 打印機錯誤 49.4c02

已解決:HP 打印機錯誤 49.4c02

這些電池將使您的下一輛電動汽車更加便宜

這些電池將使您的下一輛電動汽車更加便宜

如何從 iCloud 中刪除照片但不刪除 iPhone

如何從 iCloud 中刪除照片但不刪除 iPhone

如何禁用審核模式 Windows 7? [Solved] 2022 年

如何禁用審核模式 Windows 7? [Solved] 2022 年

如何翻譯 Reddit 帖子? 快速簡單的分步指南!

如何翻譯 Reddit 帖子? 快速簡單的分步指南!

熱門閱讀

  • iPhone 14 Pro 或 Pro Max 哪種顏色最適合您? 2024-10-30
  • 如何修復 iPhone 觸控螢幕無法運作的問題 2024-04-14
  • 適用於 Windows 11 的遊戲 2025-04-06
  • 金屬桌子如何清潔? [Solved] 2022 2023-07-28
  • 60多個在iPhone上使用Instagram的技巧,例如Pro 2025-02-05
  • 在 iPhone 8 Plus/X 上看不到 4K 60 FPS 錄製影片選項? 2024-04-13
  • 下載適用於 iPhone 16 和 15 Pro 的精美動態島壁紙 2025-01-02
  • 照片未在 iMessage 中顯示? 12 個可嘗試的修復方法 2024-04-17
  • 沒有 Microsoft 帳戶可以使用 Windows 11 嗎? 2022-03-17
  • 《科技時報》每週報導:Snapdragon 8 Elite、任天堂音樂、俄羅斯網路釣魚攻擊 2024-11-04

上升趨勢

  • Android 16(Beta)到達新智能手機:完整列表 2025-04-18
  • 這款功能強大的大型口袋PC比Mac Mini便宜2倍,是一台Dinguerie😱 2025-04-18
  • 放開您的iPhone,這個單置13至 2025-04-18
  • Intel Core i9,24 GB的RAM,SSD 1 TO TO,此迷你PC Bmax以微不足道的價格是一個純粹的掘金 2025-04-18
  • Google失去了針對其廣告帝國的審判 2025-04-18
  • 個性化您的三星星係以前從未有過:最終在Google Play上的終極工具 2025-04-18
  • 維基百科剛剛給AI部門贈送了巨大的禮物 2025-04-18
  • iPhone增加了生產,三星取出香檳 2025-04-18
  • 全球變暖慢慢污染了世界飲食的支柱之一 2025-04-18
  • 唐納德·特朗普(Donald Trump)在半導體上收緊絞索...對美國經濟的冒險賭注 2025-04-18

最近發布

  • Happier Camper 推出最新、最實惠的旅行拖車 2025-01-16
  • 為什麼護理皮膚對您的長期健康如此重要 2024-12-24
  • 鯨船碰撞熱點地區:93%沒有防護措施 2024-11-22
  • 恐龍的崛起可以從它們的糞便化石中追蹤到 2024-11-27
  • 丹麥火山爆發與新石器時代的「太陽石」祭祀有關 2025-01-16
  • 新研究顯示助聽器可以延緩帕金森氏症的發生 2024-10-21
  • 科學家剛發現了一種發現隱藏超大質量黑洞的新方法 2025-01-05
  • LIGO 搜尋中子星山脈產生的引力波 2025-01-13
  • 科學家們距離創造有史以來最重的元素又更近了一步 2024-11-04
  • 天文學家在 Messier 77 中央黑洞周圍的吸積盤中發現磁絲 2024-12-11

Copyright © 2024 世界圖譜

  • 關於本網站
  • 隱私權政策
  • 服務條款
  • 世界圖譜