在 CentOS 上,常用幾種方法來確保 Python 腳本在斷開終端后繼續運行

在 CentOS 上,你可以使用以下幾種方法來確保 Python 腳本在斷開終端后繼續運行:

1. 使用 nohup 命令

nohup 命令可以讓進程在終端關閉后繼續運行。

nohup python main.py > output.log 2>&1 &
  • nohup:忽略掛斷信號,使進程在終端關閉后繼續運行。
  • > output.log:將標準輸出重定向到 output.log 文件。
  • 2>&1:將標準錯誤輸出重定向到標準輸出(即 output.log 文件)。
  • &:將進程放到后臺運行。

2. 使用 screen 命令

screen 是一個終端多路復用器,可以讓你在斷開終端后重新連接到會話。

# 安裝 screen
sudo yum install screen# 啟動一個新的 screen 會話
screen -S mysession# 在 screen 會話中運行 Python 腳本
python main.py# 按下 Ctrl+A 然后按 D 來分離 screen 會話# 重新連接到 screen 會話
screen -r mysession

3. 使用 systemd 服務

systemd 是 CentOS 的初始化系統,可以用來管理守護進程。

  1. 創建一個新的服務文件:
sudo vi /etc/systemd/system/my_python_service.service
  1. 在文件中添加以下內容:
[Unit]
Description=My Python Script
After=network.target[Service]
ExecStart=/usr/bin/python3 /path/to/main.py
WorkingDirectory=/path/to/your/script
Restart=always
User=your_username[Install]
WantedBy=multi-user.target
  • ExecStart:指定要運行的命令。
  • WorkingDirectory:指定腳本的工作目錄。
  • Restart=always:確保腳本在崩潰或系統重啟后自動重啟。
  • User:指定運行腳本的用戶。
  1. 保存并退出編輯器。

  2. 重新加載 systemd 配置:

sudo systemctl daemon-reload
  1. 啟動服務:
sudo systemctl start my_python_service
  1. 設置服務開機自啟動:
sudo systemctl enable my_python_service

4. 使用 tmux 命令

tmux 是另一個終端多路復用器,類似于 screen

# 安裝 tmux
sudo yum install tmux# 啟動一個新的 tmux 會話
tmux new -s mysession# 在 tmux 會話中運行 Python 腳本
python main.py# 按下 Ctrl+B 然后按 D 來分離 tmux 會話# 重新連接到 tmux 會話
tmux attach -t mysession

總結

  • nohup 是最簡單的解決方案,適合臨時任務。
  • screentmux 適合需要交互的會話。
  • systemd 是最健壯的解決方案,適合長期運行的守護進程。

根據你的需求選擇合適的方法。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73023.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73023.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73023.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

blazemeter工具使用--用于自動生成jmeter腳本并進行性能測試

1、安裝blazemeter(網上有很多詳情的教程) 2、開始錄制:設置號你的文件名稱后開始錄制 3、錄制完成后保存為jmeter(jmx)文件 4、在jmeter中打開文件 5、添加一個后置處理器:查看結果樹,后運行看看能否成功&#xf…

6-langchang多模態輸入和自定義輸出

6-langchang多模態輸入和自定義輸出 多模態數據輸入urlbase64url list工具調用自定義輸出: JSON, XML, YAML如何解析 JSON 輸出json如何解析xmlYAML解析器多模態數據輸入 這里我們演示如何將多模態輸入直接傳遞給模型。我們目前期望所有輸入都以與OpenAI 期望的格式相同的格式…

【C#實現手寫Ollama服務交互,實現本地模型對話】

前言 C#手寫Ollama服務交互,實現本地模型對話 最近使用C#調用OllamaSharpe庫實現Ollama本地對話,然后思考著能否自己實現這個功能。經過一番查找,和查看OllamaSharpe源碼發現確實可以。其實就是開啟Ollama服務后,發送HTTP請求&a…

【C#學習筆記02】基本元素與數據類型

引言 深入了解C語言的基本元素、計算機存儲器結構、常量與變量的概念以及數據類型。這些內容是C語言編程的基礎,掌握它們對于編寫高效、可靠的嵌入式程序至關重要。 1.C語言的基本元素 ?編程語言的發展離不開自然語言,所以編程語言的語法和詞匯也是由…

ESP8266TCP客戶端(單連接TCP Client)

單連接TCP Client 電腦作為服務器,8266作為客戶端 1.配置WiFi模式 ATCWMODE3 //softAPstation mode 相應:ok 2.連接路由器 ATCWJAP“SSID”,“password” //SSID就是wifi的名字, password WIFI密碼 響應&#xff…

洛谷 P2234:[HNOI2002] 營業額統計 ← STL set

【題目來源】 https://www.luogu.com.cn/problem/P2234 【題目描述】 Tiger 最近被公司升任為營業部經理,他上任后接受公司交給的第一項任務便是統計并分析公司成立以來的營業情況。 Tiger 拿出了公司的賬本,賬本上記錄了公司成立以來每天的營業額。分析…

VSCode 2025最新前端開發必備插件推薦匯總(提效指南)

🌟前言: 如果你是一名前端開發工程師,合適的開發工具能大大提高工作效率。Visual Studio Code (VSCode) 憑借其輕量級、高擴展性的特點,已成為眾多前端開發者在win系電腦的首選IDE。 名人說:博觀而約取,厚積而薄發。—…

Java學習--Redis

官網:https://redis.io 中文網:Redis中文網 Redis安裝包分為 Windows 版和 Linux 版: Windows版下載地址:Releases microsoftarchive/redis GitHub Linux版下載地址: Index of /releases/ 一、Redis簡介 Redis是…

matlab慕課學習3.2+3.3

于20250310 3.2用if語句實現選擇結構 3.2.1什么是選擇結構 用if 語句和switch語句可實現選擇結構 3.2.2單分支if語句 if 條件語句組 %可以是一條也可是多條end 當條件為標量,非0表成立,0表示不成立。 當條件為矩陣時,矩陣非空&#xff…

JavaScript性能優化:DOM操作優化實戰

JavaScript性能優化:DOM操作優化實戰 一 重排與重繪的代價 問題場景 用戶點擊按鈕后,需要動態生成一個包含10,000個選項的下拉列表,但界面出現長達5秒的凍結。 錯誤代碼示例 function createList() {const ul document.getElementById(…

【Java學習】包裝類

面向對象系列九 包裝類變量 一、裝箱 1.實例化包裝對象 2.靜態緩存池 3.寫法 二、拆箱 包裝類變量 每個基本數據類型都有對應的基本類型的包裝類變量,將基本數據類型通過對應的包裝類對象載入著進入到類與對象面向對象體系 一、裝箱 Integer.valueOf(int) —…

【第22節】C++設計模式(行為模式)-Iterator(迭代器)模式

一、問題背景 Iterator 模式是設計模式中最為常見和實用的模式之一。它的核心思想是將對聚合對象的遍歷操作封裝到一個獨立的類中,從而避免暴露聚合對象的內部表示。通過 Iterator 模式,我們可以實現對聚合對象的統一遍歷接口,而不需要關心聚…

02C#基本結構篇(D4_注釋-訪問修飾符-標識符-關鍵字-運算符-流程控制語句)

目錄 一、注釋 1. 單行注釋 2. 多行注釋 3. XML文檔注釋 4. 使用建議和最佳實踐: 二、訪問修飾符 1. public 2. private 3. protected 4. internal 5. protected internal 或 protected and internal 6. private protected 或 private and protected 7.…

【CXX】6.2 str — rust::Str

Rust::Str 公共 API // rust/cxx.hclass Str final { public:Str() noexcept;Str(const Str &) noexcept;Str(const String &) noexcept;// 如果輸入不是 UTF-8,拋出 std::invalid_argument 異常。Str(const std::string &);Str(const char *);Str(con…

基于windows的MySQL安裝(2025最新,小白可用)

目錄 一,下載官網地址(及版本選擇): 二,以安裝程序的方式安裝MySQL 1,安裝過程 2,用客戶端使用MySQL 3,配置環境變量在windows命令行界面使用mysql 下次開機后手動啟用服務 三…

Jenkins實現自動化構建與部署:上手攻略

一、持續集成與Jenkins核心價值 1.1 為什么需要自動化構建? 在現代化軟件開發中,團隊每日面臨以下挑戰: 高頻代碼提交:平均每個開發者每天提交5-10次代碼。多環境部署:開發、測試、預發布、生產環境需頻繁同步。復雜…

4個 Vue 路由實現的過程

大家好,我是大澈!一個喜歡結交朋友、喜歡編程技術和科技前沿的老程序員👨🏻?💻,關注我,科技未來或許我能幫到你! Vue 路由相信朋友們用的都很熟了,但是你知道 Vue 路由…

數學之快速冪-數的冪次

題目描述 給定三個正整數 N,M,P,求 輸入描述 第 1 行為一個整數 T,表示測試數據數量。 接下來的 T 行每行包含三個正整數 N,M,P。 輸出描述 輸出共 T 行,每行包含一個整數,表示答案。 輸入輸出樣例 示例 1 輸入 3 2 3 7 4…

【JavaEE】多線程進階(2)

【JavaEE】多線程進階(2) 一、JUC(java.util.concurrent) 的常?類1.1 Callable 接?1.2 ReentrantLock1.3 原子類原子類的特性:常見原子類:原子類的實例: 1.4 線程池1.5 信號量 Semaphore代碼實例 1.6 CountDownLatch…

[漏洞篇]XSS漏洞詳解

[漏洞篇]XSS漏洞 一、 介紹 概念 XSS:通過JS達到攻擊效果 XSS全稱跨站腳本(Cross Site Scripting),為避免與層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故縮寫為XSS。這是一種將任意 Javascript 代碼插入到其他Web用戶頁面里執行以…