linux命令 nohup python -u 12.py > test.txt 2>&1 &
阿新 • • 發佈:2021-02-05
技術標籤:linux
linux命令 nohup python -u 12.py > test.txt 2>&1 &
nohup
- 用途:不掛斷地執行命令
- 語法: nohup Command [ Arg … ] [ & ]
無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的 nohup.out 檔案中。
如果當前目錄的 nohup.out 檔案不可寫,輸出重定向到 $HOME/nohup.out 檔案中。
如果沒有檔案能建立或開啟以用於追加,那麼 Command 引數指定的命令不可呼叫。 - 退出狀態:該命令返回下列出口值:
① 126 可以查詢但不能呼叫 Command 引數指定的命令。
② 127 nohup 命令發生錯誤或不能查詢由 Command 引數指定的命令。
③ 否則,nohup 命令的退出狀態是 Command 引數指定命令的退出狀態
&
-
用途:在後臺執行
一般nohup 和 & 一起使用
例如:nohup python -u 12.py > test.txt 2>&1 &
利用jobs -l
檢視後臺程序
jobs命令只看當前終端生效的,關閉終端後,在另一個終端jobs已經無法看到後臺跑得程式了,此時利用ps(程序檢視命令)
ps -ef
是用標準的格式顯示程序的、其格式如下- UID //使用者ID、但輸出的是使用者名稱
- PID //程序的ID
- PPID //父程序ID
- C //程序佔用CPU的百分比
- STIME //程序啟動到現在的時間
- TTY //該程序在那個終端上執行,若與終端無關,則顯示? 若為pts/0等,則表示由網路連線主機程序。
- CMD //命令的名稱和引數
ps aux
是用BSD的格式來顯示、其格式如下
-
同ps -ef 不同的如下
-
USER //使用者名稱
-
%CPU //程序佔用的CPU百分比
-
%MEM //佔用記憶體的百分比
-
VSZ //該程序使用的虛擬記憶體量(KB)
-
RSS //該程序佔用的固定記憶體量(KB)(駐留中頁的數量)
-
STAT //程序的狀態
-
START //該程序被觸發啟動時間
-
TIME //該程序實際使用CPU執行的時間
其中STAT狀態位常見的狀態字元有
- D //無法中斷的休眠狀態(通常 IO 的程序);
- R //正在執行可中在佇列中可過行的;
- S //處於休眠狀態;
- T //停止或被追蹤;
- W //進入記憶體交換 (從核心2.6開始無效);
- X //死掉的程序 (基本很少見);
- Z //殭屍程序;
- < //優先順序高的程序
- N //優先順序較低的程序
- L //有些頁被鎖進記憶體;
- s //程序的領導者(在它之下有子程序);
- l //多執行緒,克隆執行緒(使用 CLONE_THREAD, 類似 NPTL pthreads);
- + //位於後臺的程序組;
一個命令的執行伴隨著三種輸入輸出
- 標準輸入(stdin):預設指向鍵盤的輸入,可以通過標準輸入重定向<,讓標準輸入指向檔案輸入
- 標準輸出(stdout) :指命令產生的正常的輸出,如echo aaa,標準輸出預設指向終端顯示器,可以通過輸出重定向>,讓標準輸出重定向到檔案
- 標準錯誤輸出(stderr):指命令產生的錯誤資訊的輸出,如執行了不存在的命令t,標準錯誤輸出也預設指向終端顯示器,同樣可以通過輸出重定向>,讓標準錯誤輸出重定向到檔案
所謂的輸出重定向到檔案,是指把預設輸出到終端顯示器的資訊寫入到指定檔案
標準輸入,標準輸出,標準錯誤輸出的檔案描述符分別時0,1,2。
command>file 2>&1 &
-
> 表示輸出重定向
-
file 表示要重定向的檔名
-
2和1 分別指標準錯誤輸出和標準輸出,
-
而&1表示標準輸出的引用,所以2>&1是指把標準錯誤輸出重定向到標準輸出的引用,即也重定向到file
#!/bin/sh
t //t命令不存在,會產生標準錯誤輸出
date //會產生標準輸出