linux后台执行

跑一些程序时退出shell程序就终止了,这时就要使用以下命令:

linux 中 0 1 2文件描述符

名称代码操作符Linux 下文件描述符(Debian 为例)
标准输入(stdin)0< 或 «/dev/stdin -> /proc/self/fd/0 -> /dev/pts/0
标准输出(stdout)1>, », 1> 或 1»/dev/stdout -> /proc/self/fd/1 -> /dev/pts/0
标准错误输出(stderr)22> 或 2»/dev/stderr -> /proc/self/fd/2 -> /dev/pts/0

nohup

最后退出shell务必使用 exit 或者 ,ctrl + d 退出,不然可能造成程序退出
nohup( no hang up )

nohup 你要执行的命令 &
# 后台运行,默认在该程序目录生成nohup.out文件记录输出

nohup 你要执行的命令 &>log &
nohup 你要执行的命令 >log 2>&1 &
# 标准输出和错误输出到log并后台运行

bg

  1. 前台在跑程序时使用 ctrl + z 挂起进程以便执行命令

  2. 这时使用 bg 程序uid 即可在后台继续运行

查看后台进程信息

jobs -l

# 查看后台运行的进程,可获得进程uid(jobs命令只是对当前终端生效)

ps -ef |grep uid或者进程名
ps -aux |grep uid或者进程名
# ps+grep获得后台进程信息

ps aux | grep command | grep -v grep | awk '{print $1}' | xargs kill -9 
# 直接通过command获取进程id并直接kill掉

切换至前台

fg 进程uid

fg %uid
# 将后台进程切换值前台

关闭该后台进程

kill 进程uid

screen

命令含义快捷键
screen新建会话
screen -S name新建会话并命名
 
 离开会话ctrl + a + d
screen -ls查看所有会话
screen -r name恢复会话

tmux

# 创建tmux会话
tmux
tmux new -s <session-name>

# 分离会话
tmux detach

# 查看会话
tmux ls

# 接入会话
tmux attach -t 0

# 关闭会话
tmux kill-session -t 0

# 切换会话
tmux switch -t 0

# 重命名会话
tmux rename-session -t 0 <new-name>

快捷键

快捷键功能
ctrl + b + d分离会话
ctrl + b + s列出会话
ctrl + b + $重命名会话
ctrl + b + 帮助信息

参考链接