天天看点

nohup和&,进程后台运行、查看、终止(转载)查看日志(动态显示)查看日志(一次性显示整个文件)查看当前Python进程杀死进程

nohup和&,进程后台运行、查看、终止

  • 查看日志(动态显示)
  • 查看日志(一次性显示整个文件)
  • 查看当前Python进程
  • 杀死进程

nohup 命令可以使命令永久的执行下去,和终端没有关系,退出终端也不会影响程序的运行;

& 是后台运行的意思,但当用户退出的时候,命令自动也跟着退出。

那么,把两个结合起来nohup 命令 &这样就能使命令永久的在后台执行

nohup 【命令】 &  #  &表示nohup的结束biaozhi
           

以run_train.sh文件为例

source env_set.sh

nohup python -u train_image_classifier.py \
  --dataset_name=$DATASET_NAME \
  --dataset_dir=$DATASET_DIR \
  --checkpoint_path=$CHECKPOINT_PATH \
  --model_name=inception_v4 \
  --checkpoint_exclude_scopes=InceptionV4/Logits,InceptionV4/AuxLogits/Aux_logits \
  --trainable_scopes=InceptionV4/Logits,InceptionV4/AuxLogits/Aux_logits \
  --train_dir=$TRAIN_DIR \
  --learning_rate=0.001 \
  --learning_rate_decay_factor=0.76\
  --num_epochs_per_decay=50 \
  --moving_average_decay=0.9999 \
  --optimizer=adam \
  --ignore_missing_vars=True \
  --batch_size=32 > output.log 2>&1 &
           

TensorFlow中运行程序,在run_train.sh文件前后添加nohup 命令 > output.log 2>&1 &让命令在后台执行。

其中 0、1、2分别代表如下含义:

0 – stdin (standard input)

1 – stdout (standard output)

2 – stderr (standard error)

nohup+最后面的&是让命令在后台执行

”>output.log 是将信息输出到output.log日志中“

2>&1是将标准错误信息转变成标准输出,这样就可以将错误信息输出到output.log 日志里面来。

查看日志(动态显示)

tail -f output.log
           

查看日志(一次性显示整个文件)

cat output.log
           

查看当前Python进程

ps -ef |grep python
           

杀死进程

sudo kill 进程号
           
kill -9 进程号 #绝杀
           

继续阅读