shell 後臺執行 | 命令分解、hadoop任務

一.後臺執行
nohup sh run.sh >log.txt 2>&1 &

如果是python程序要加-u,不然日誌不能正常輸出,執行:

nohup python -u run.py >log.txt 2>&1 &

輸出:

[1] 13549  # 進程號,後面查看相關信息用到。

這個命令分五個部分,分別是nohupsh run.sh>log.txt2>&1&

  • nohup和最後的&:表示命令在後臺執行
  • sh run.sh執行run.sh腳本
  • >log.txt 是將信息輸出到log.txt日誌中
  • 2>&1 是將標準錯誤信息轉變成標準輸出,這樣就可以將錯誤信息輸出到log.txt 日誌裏面來。
  • 如果是python腳本,加-u 選項輸出print內容:nohup python -u run.py >log.txt 2>&1 &

其中 0、1、2分別代表如下含義:

  • 0 – stdin (標準輸入)
  • 1 – stdout (標準輸出)
  • 2 – stderr (標準錯誤)
二.後臺查看
1. 查看本地進程
ps -ef | grep 13549

輸出:

work     12929 44118  0 11:36 pts/2    00:00:00 grep 13549

這個命令也是分五個部分ps-ef|grep13549

  • ps表示將某個進程顯示出來
  • -e表示顯示所有程序、-f表示顯示UID,PPIP,C與STIME欄位
  • grep表示查找和其後面內容相關的信息,即和13549相關的信息
  • |是管道命令 是指ps命令與grep同時執行

輸出的信息分別是:UID 、 PID 、PPID 、 C STIME 、 TTY、 TIME 、 CMD

  • UID 程序被該 UID 所擁有
  • PID 就是這個程序的 ID
  • PPID 則是其上級父程序的ID
  • C CPU 使用的資源百分比
  • STIME 系統啓動時間
  • TTY 登入者的終端機位置
  • TIME 使用掉的 CPU 時間。
  • CMD 所下達的指令爲何
2. 查看hadoop進程
vim log.txt
三.終止進程
1.終止本地進程 kill -9 pid
kill -9 13549
2.終止hadoop進程 hadoop job -kill jobid
hadoop job -kill job_20180809144936_572433
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章