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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章