Linux下使shell脚本后台运行(shell命令脱离终端在后台运行)

前言

有时候运行一些shell脚本, 服务启动后会一直占用当前的终端, 无法做其它事, 这时候特别想将这个shell命令放到后台运行, 不要占用当前的终端界面.



目的(需求)

  1. shell脚本正常运行
  2. shell脚本不影响当前终端的二次使用


解决办法

  • 使用nohup命令
nohup 你的shell命令 &


引申问题

  • 那如果不想让脚本继续执行怎么办呢?


使用ps命令找到任务, 再用kill命令中止任务

[root@kafka ~]# ps -ef 
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 00:45 ?        00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2      0  0 00:45 ?        00:00:00 [kthreadd]

# 使用ps + grep 查询任务关键字, 缩小范围
ps -ef | grep 任务的关键字


# 使用kill命令, 杀掉进程
[root@kafka ~]# ps -ef | grep zookeeper
root       2275   1389  0 04:58 pts/0    00:00:02 /usr/java/jdk1.8/...

# kill -9 pid
kill -9 2275



参考来源

Linux下使Shell 命令脱离终端在后台运行

原文地址:https://www.cnblogs.com/vitoboy/p/12996273.html