国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

高效管理 Linux 進(jìn)程:如何后臺(tái)執(zhí)行程序、查看進(jìn)程、終止任務(wù)

這篇具有很好參考價(jià)值的文章主要介紹了高效管理 Linux 進(jìn)程:如何后臺(tái)執(zhí)行程序、查看進(jìn)程、終止任務(wù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

高效管理 Linux 進(jìn)程:如何后臺(tái)執(zhí)行程序、查看進(jìn)程、終止任務(wù)

一、nohup命令詳解

1-1、nohup命令介紹

nohup:nohup是“no hangup”的縮寫,用于在后臺(tái)不掛斷的運(yùn)行命令,使其在用戶退出或終端關(guān)閉時(shí)不受影響。它通過忽略掛斷(SIGHUP)信號(hào)實(shí)現(xiàn)這一功能。換句話說,nohup 是一條 Unix 命令,用于在后臺(tái)執(zhí)行程序,即使當(dāng)前終端會(huì)話已經(jīng)關(guān)閉或者斷開,程序也可以繼續(xù)運(yùn)行。nohup 命令的使用非常簡(jiǎn)單,只需要在要執(zhí)行的命令前加上 nohup 和 & 符號(hào)即可。

1-2、語法格式

1-2-1、基礎(chǔ)語法介紹

nohup 命令的語法如下

nohup command [arg...] &

# 其中,command 表示要在后臺(tái)執(zhí)行的命令或進(jìn)程,arg 表示命令或進(jìn)程的參數(shù),& 符號(hào)表示將命令或進(jìn)程放到后臺(tái)執(zhí)行。

注意:nohup 命令的執(zhí)行結(jié)果會(huì)輸出到當(dāng)前目錄下的 nohup.out 文件中。如果要將命令或進(jìn)程的輸出重定向到其他文件中,可以使用重定向符號(hào)(>)指定輸出文件的路徑。例如:

nohup command [arg...] > output_file &

1-2-2、執(zhí)行腳本文件

在執(zhí)行 nohup 命令時(shí),如果 command 是一個(gè)腳本文件,那么需要給該腳本文件添加可執(zhí)行權(quán)限(chmod +x script.sh)。否則,會(huì)提示 “no such file or directory” 的錯(cuò)誤。添加執(zhí)行權(quán)限后執(zhí)行nohup 命令

nohup sh filename.sh &

1-2-3、執(zhí)行python文件

執(zhí)行python文件: nohup 命令通常用于長(zhǎng)時(shí)間運(yùn)行的任務(wù),例如在服務(wù)器上運(yùn)行后臺(tái)進(jìn)程或者執(zhí)行需要花費(fèi)較長(zhǎng)時(shí)間的腳本。在使用 nohup 命令時(shí),建議將程序的輸出重定向到一個(gè)日志文件中,以便后續(xù)查看程序的運(yùn)行情況。

例如,要在后臺(tái)執(zhí)行一個(gè) Python 腳本,并將輸出重定向到一個(gè)日志文件中,可以使用以下命令:

nohup python my_script.py > my_script.log &

這將在后臺(tái)執(zhí)行 my_script.py 腳本,并將輸出重定向到 my_script.log 文件中。如果當(dāng)前終端會(huì)話已經(jīng)關(guān)閉或者斷開,my_script.py 仍將繼續(xù)在后臺(tái)運(yùn)行,并將輸出寫入到 my_script.log 文件中。

1-2-4、拓展延申:在服務(wù)器上運(yùn)行后臺(tái)進(jìn)程

拓展延申:nohup 命令的一個(gè)常見用途是在服務(wù)器上運(yùn)行后臺(tái)進(jìn)程,例如 Web 服務(wù)器、數(shù)據(jù)庫服務(wù)器等。在執(zhí)行這些服務(wù)時(shí),可以使用 nohup 命令將服務(wù)放到后臺(tái)運(yùn)行,并將輸出重定向到日志文件中。

例如,在 Linux 系統(tǒng)上,要在后臺(tái)啟動(dòng)一個(gè) Apache Web 服務(wù)器,并將輸出重定向到日志文件中,可以使用以下命令:

nohup /usr/local/apache2/bin/httpd -k start > /var/log/httpd.log &
這將在后臺(tái)啟動(dòng) Apache Web 服務(wù)器,并將輸出重定向到 /var/log/httpd.log 文件中。

需要注意的是,nohup 命令并不是萬能的,它不能保證被執(zhí)行的命令或進(jìn)程一定會(huì)一直運(yùn)行。如果命令或進(jìn)程本身存在問題或異常,仍然可能會(huì)被終止或崩潰。因此,在使用 nohup 命令時(shí),仍需要對(duì)被執(zhí)行的命令或進(jìn)程進(jìn)行監(jiān)控和管理。

1-2-5、nohup和&的區(qū)別

&:是指在后臺(tái)運(yùn)行,當(dāng)用戶退出(掛起)的時(shí)候,命令自動(dòng)跟著結(jié)束

nohup:不掛斷的運(yùn)行,注意并沒有后臺(tái)運(yùn)行的功能,就是指用nohup運(yùn)行命令可以使命令永久的執(zhí)行下去,和用戶終端沒有關(guān)系,例如我們斷開SSH連接都不會(huì)影響他的運(yùn)行,注意了nohup沒有后臺(tái)運(yùn)行的意思;&才是后臺(tái)運(yùn)行, 使用nohup后關(guān)閉了標(biāo)準(zhǔn)輸入,終端不能再接受任何輸入。

因此將nohup和&結(jié)合使用,就可以實(shí)現(xiàn)使命令永久地在后臺(tái)執(zhí)行的功能,結(jié)合使用后,終端可以接受任何輸入。

二、進(jìn)程查看

2-1、jobs命令(基本不用)

jobs命令:jobs命令用于查看當(dāng)前會(huì)話中的后臺(tái)任務(wù)。它只能顯示當(dāng)前終端中的后臺(tái)進(jìn)程,即與當(dāng)前會(huì)話關(guān)聯(lián)的進(jìn)程。一些常用的jobs參數(shù)如下:

  • -l:列出進(jìn)程ID以及任務(wù)狀態(tài)
  • -n:僅列出狀態(tài)發(fā)生變化的任務(wù)
  • -r:僅列出正在運(yùn)行的任務(wù)
  • -s:僅列出已停止的任務(wù)

例如,使用jobs -l命令可以查看當(dāng)前會(huì)話中的后臺(tái)任務(wù)及其進(jìn)程ID。

2-2、ps命令

ps命令:ps命令用于報(bào)告當(dāng)前系統(tǒng)的進(jìn)程狀態(tài)。與jobs命令不同,ps可以顯示所有用戶的進(jìn)程信息,而不僅僅是當(dāng)前會(huì)話。一些常用的ps參數(shù)如下:

  • -A:顯示所有進(jìn)程
  • -u:按用戶顯示進(jìn)程,顯示進(jìn)程的詳細(xì)信息,包括用戶、進(jìn)程號(hào)、CPU 占用、內(nèi)存占用等信息。
  • -x:顯示無控制終端的進(jìn)程
  • -e:顯示環(huán)境變量
  • -aux: 顯示所有進(jìn)程的詳細(xì)信息,包括用戶、進(jìn)程號(hào)、占用 CPU 和內(nèi)存等信息。(一般直接使用aux就可以)

例如,使用ps -A命令可以查看系統(tǒng)中的所有進(jìn)程。要查找特定進(jìn)程,可以將輸出通過管道傳遞給grep命令,如ps -A | grep my_script.sh。
linux 查看后臺(tái)進(jìn)程,Linux,linux,unix,服務(wù)器
linux 查看后臺(tái)進(jìn)程,Linux,linux,unix,服務(wù)器

2-3、top命令

top命令:top命令提供了一個(gè)實(shí)時(shí)動(dòng)態(tài)的進(jìn)程監(jiān)視器。它可以查看系統(tǒng)中所有進(jìn)程的實(shí)時(shí)狀態(tài),并根據(jù)資源占用對(duì)進(jìn)程進(jìn)行排序。在top界面中,你可以看到進(jìn)程ID、用戶、CPU占用、內(nèi)存占用等信息。

要查找特定進(jìn)程,可以在top界面中按u鍵,輸入用戶名以篩選該用戶的進(jìn)程。此外,你還可以按o鍵,然后輸入篩選條件,如COMMAND=my_script.sh。按回車鍵確認(rèn),top將僅顯示與條件匹配的進(jìn)程。最后,按ctrl+c退出預(yù)覽。
linux 查看后臺(tái)進(jìn)程,Linux,linux,unix,服務(wù)器

三、終止進(jìn)程

3-1、進(jìn)程終止概念介紹

進(jìn)程終止指的是一個(gè)正在運(yùn)行的進(jìn)程結(jié)束其執(zhí)行的過程。進(jìn)程終止可以是正常的(例如,進(jìn)程完成了它的任務(wù),或者用戶通過操作系統(tǒng)的接口請(qǐng)求終止進(jìn)程),也可以是非正常的(例如,進(jìn)程崩潰或遇到錯(cuò)誤)。以下是關(guān)于進(jìn)程終止的一些詳細(xì)信息:

  • 正常終止:當(dāng)一個(gè)進(jìn)程完成了它的任務(wù)并且正常退出時(shí),它會(huì)通知操作系統(tǒng),操作系統(tǒng)會(huì)將進(jìn)程標(biāo)記為“已退出”。這時(shí)操作系統(tǒng)會(huì)釋放進(jìn)程所占用的內(nèi)存、關(guān)閉與進(jìn)程相關(guān)的文件等資源,并將進(jìn)程的退出代碼(一個(gè)整數(shù)值)返回給父進(jìn)程。父進(jìn)程可以通過讀取這個(gè)退出代碼來確定進(jìn)程完成的狀態(tài)。如果父進(jìn)程沒有及時(shí)調(diào)用wait()或waitpid()函數(shù)來獲取退出狀態(tài),那么進(jìn)程會(huì)成為“僵尸進(jìn)程”,直到父進(jìn)程獲取到退出狀態(tài)或者父進(jìn)程本身終止。

  • 非正常終止:當(dāng)一個(gè)進(jìn)程遇到錯(cuò)誤或者崩潰時(shí),它可能會(huì)被操作系統(tǒng)強(qiáng)制終止。例如,如果進(jìn)程發(fā)生了段錯(cuò)誤(訪問了未分配的內(nèi)存),或者進(jìn)程超過了允許的資源限制(如內(nèi)存限制或時(shí)間限制),那么操作系統(tǒng)會(huì)終止這個(gè)進(jìn)程并向其父進(jìn)程報(bào)告錯(cuò)誤信息。在這種情況下,父進(jìn)程可以通過調(diào)用wait()或waitpid()函數(shù)來獲取進(jìn)程終止的狀態(tài)。

  • 信號(hào)終止:操作系統(tǒng)可以向進(jìn)程發(fā)送信號(hào)來終止進(jìn)程。例如,如果用戶在命令行中按下Ctrl+C,操作系統(tǒng)會(huì)向正在運(yùn)行的進(jìn)程發(fā)送SIGINT信號(hào),告訴它終止執(zhí)行。進(jìn)程可以捕獲這些信號(hào)并采取適當(dāng)?shù)拇胧?,例如,保存進(jìn)度并安全地終止執(zhí)行。如果進(jìn)程沒有捕獲這些信號(hào),那么操作系統(tǒng)會(huì)默認(rèn)終止進(jìn)程,并向其父進(jìn)程報(bào)告錯(cuò)誤信息。

總之,進(jìn)程終止是一個(gè)非常重要的概念,對(duì)于操作系統(tǒng)的穩(wěn)定性和安全性具有至關(guān)重要的作用。了解進(jìn)程終止的原因和機(jī)制,可以幫助我們更好地理解操作系統(tǒng)的工作原理,從而更好地開發(fā)和調(diào)試應(yīng)用程序。

3-2、kill命令介紹

kill 命令用于終止指定的進(jìn)程。常見的選項(xiàng)包括

  • -9:強(qiáng)制終止進(jìn)程,相當(dāng)于發(fā)送 SIGKILL 信號(hào)。
  • -15(默認(rèn)選項(xiàng)):正常終止進(jìn)程,相當(dāng)于發(fā)送 SIGTERM 信號(hào)。

例如,要?dú)⑺肋M(jìn)程號(hào)為 12345 的進(jìn)程,可以使用以下命令:

# 使用top、ps等命令查看進(jìn)程號(hào)
kill 12345

這將向進(jìn)程號(hào)為 12345 的進(jìn)程發(fā)送 SIGTERM 信號(hào),使其正常終止。

如果進(jìn)程無法正常終止,可以使用 -9 選項(xiàng)強(qiáng)制終止進(jìn)程。例如:

kill -9 12345

這將向進(jìn)程號(hào)為 12345 的進(jìn)程發(fā)送 SIGKILL 信號(hào),使其強(qiáng)制終止。

需要注意的是,殺死進(jìn)程可能會(huì)導(dǎo)致未保存的數(shù)據(jù)丟失或其他不可預(yù)知的后果。在使用 kill 命令時(shí),應(yīng)該盡量避免誤殺進(jìn)程,確保只殺死必要的進(jìn)程。


總結(jié)

知識(shí)點(diǎn)增加了!文章來源地址http://www.zghlxwxcb.cn/news/detail-690296.html

到了這里,關(guān)于高效管理 Linux 進(jìn)程:如何后臺(tái)執(zhí)行程序、查看進(jìn)程、終止任務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux 進(jìn)程異常退出 如何查看日志

    當(dāng)進(jìn)程異常退出時(shí),可以通過以下步驟來查看日志: 找到進(jìn)程的 PID(進(jìn)程 ID),可以通過 ps 命令來查看: 找到進(jìn)程的日志文件,一般情況下,進(jìn)程的日志文件都會(huì)被記錄在 /var/log 目錄下,可以使用 ls 命令來查看: 打開日志文件,可以使用 tail 命令來查看日志文件的最后幾

    2024年02月16日
    瀏覽(98)
  • Linux當(dāng)中如何隱藏和查看進(jìn)程

    Linux當(dāng)中如何隱藏和查看進(jìn)程

    進(jìn)程是執(zhí)行程序的過程,類似于按照?qǐng)D紙,真正去蓋房子的過程。 同一個(gè)程序可以執(zhí)行多次,每次都可以在內(nèi)存中開辟獨(dú)立的空間來裝載,從而產(chǎn)生多個(gè)進(jìn)程。不同的進(jìn)程還可以擁有各自獨(dú)立的IO接口。操作系統(tǒng)的一個(gè)重要功能就是為進(jìn)程提供方便,比如說為進(jìn)程分配內(nèi)存空

    2024年02月15日
    瀏覽(22)
  • linux 如何查看es進(jìn)程,Linux---關(guān)閉Elasticsearch進(jìn)程,并重新啟動(dòng)

    查看ES進(jìn)程: 執(zhí)行命令:ps -ef | grep elasticsearch 如果有elasticsearch進(jìn)程,則會(huì)返回包含elasticsearch的進(jìn)程信息,如下所示: 如果沒有elasticsearch進(jìn)程,則不會(huì)返回任何信息。 關(guān)閉ES進(jìn)程: 執(zhí)行命令:sudo systemctl stop elasticsearch 等待一段時(shí)間,直到ES進(jìn)程完全停止。 重新啟動(dòng)

    2024年02月11日
    瀏覽(21)
  • Linux如何查看文件進(jìn)程占用-lsof

    lsof命令是什么? 可以列出被進(jìn)程所打開的文件的信息。被打開的文件可以是 1.普通的文件,2.目錄 ?3.網(wǎng)絡(luò)文件系統(tǒng)的文件,4.字符設(shè)備文件 ?5.(函數(shù))共享庫 ?6.管道,命名管道?7.符號(hào)鏈接 8.底層的socket字流,網(wǎng)絡(luò)socket,unix域名socket 9.在linux里面,大部分的東西都是被當(dāng)做文

    2024年02月12日
    瀏覽(12)
  • windows10下powershell中如何在后臺(tái)執(zhí)行python程序

    windows10下powershell中如何在后臺(tái)執(zhí)行python程序

    在windows10本地執(zhí)行時(shí)間較長(zhǎng)的程序時(shí),很容易忘記,隨手關(guān)掉編譯器,程序就此中斷,造成精神傷害。 如果不管不掛起,不管日志重定向,我要運(yùn)行的python腳本的命令很簡(jiǎn)單 現(xiàn)在掛起在后臺(tái),需要把原先在控制臺(tái)顯示的一大堆輸出,重定向到日志文件中。注意,在win10下不可

    2024年03月09日
    瀏覽(26)
  • Linux 查看程序(動(dòng)態(tài)庫)、進(jìn)程的依賴庫的方法

    當(dāng)我們?cè)趌inux上部署自己開發(fā)的項(xiàng)目程序時(shí),項(xiàng)目代碼與依賴庫完整拷貝過去之后,直接運(yùn)行我們自己的可執(zhí)行程序,往往提示找不到所相關(guān)的.so庫,會(huì)報(bào)錯(cuò)。 系統(tǒng)只會(huì)去默認(rèn)搜尋目錄( /lib和/usr/lib )下, 以及動(dòng)態(tài)庫配置文件( /etc/ld.so.conf和/etc/ld.so.conf.d/*.conf )里所列的目錄下

    2024年02月02日
    瀏覽(20)
  • 【Linux】進(jìn)程與可執(zhí)行程序的關(guān)系&&fork創(chuàng)建子進(jìn)程&&寫實(shí)拷貝的理解

    【Linux】進(jìn)程與可執(zhí)行程序的關(guān)系&&fork創(chuàng)建子進(jìn)程&&寫實(shí)拷貝的理解

    ? ? ? ? 系統(tǒng)會(huì)將此時(shí)在系統(tǒng)運(yùn)行的進(jìn)程的各種屬性都以文件的形式給你保存在系統(tǒng)的proc目錄下。 運(yùn)行一個(gè)程序的時(shí)候,本質(zhì)就是把磁盤中的程序拷貝到內(nèi)存中,當(dāng)一個(gè)進(jìn)程運(yùn)行起來的時(shí)候,它本質(zhì)已經(jīng)和磁盤中的可執(zhí)行程序沒有直接關(guān)系了。 ? 當(dāng)前我的myprocess程序正在運(yùn)

    2024年03月19日
    瀏覽(35)
  • 【Linux初階】進(jìn)程地址空間 | CUP與可執(zhí)行程序的交互原理

    【Linux初階】進(jìn)程地址空間 | CUP與可執(zhí)行程序的交互原理

    ???hello,各位讀者大大們你們好呀?? ????系列專欄:【Linux初階】 ????本篇內(nèi)容:計(jì)算機(jī)空間初識(shí)(子進(jìn)程變量修改實(shí)驗(yàn)),感性理解進(jìn)程虛擬地址空間,進(jìn)程地址空間基礎(chǔ)(概念、區(qū)域劃分與調(diào)整、程序?qū)?nèi)存數(shù)據(jù)的修改、按需分配虛擬地址空間),解答為什么存

    2024年02月05日
    瀏覽(21)
  • Linux如何查看當(dāng)前占用CPU和內(nèi)存最多的進(jìn)程

    查看占用 CPU 最高的前10個(gè)進(jìn)程 查看占用內(nèi)存(MEM)最高的前10個(gè)進(jìn)程 輸入 top 命令,然后按下大寫M按照內(nèi)存MEM排序,按下大寫P按照CPU排序

    2024年02月17日
    瀏覽(22)
  • Linux 系統(tǒng)中常見的命令,它們用于執(zhí)行各種任務(wù),包括文件和目錄管理、系統(tǒng)信息查看、用戶管理等

    以下是一些在 Linux 系統(tǒng)中常見的命令,它們用于執(zhí)行各種任務(wù),包括文件和目錄管理、系統(tǒng)信息查看、用戶管理等。這里列舉了一些基礎(chǔ)的命令: 文件和目錄管理: ls: 列出目錄內(nèi)容。 ls cd: 切換當(dāng)前目錄。 cd /path/to/directory cp: 復(fù)制文件或目錄。 cp source_file destination mv: 移動(dòng)

    2024年01月19日
    瀏覽(458)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包