Linux下使shell脚本后台运行(shell命令脱离终端在后台运行)
前言
有时候运行一些shell脚本, 服务启动后会一直占用当前的终端, 无法做其它事, 这时候特别想将这个shell命令放到后台运行, 不要占用当前的终端界面.
目的(需求)
- shell脚本正常运行
- 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