【Linux】Linux后台管理

工作(后台)管理指的是在单个登录终端中(shell界面)同时管理多个工作行为

注意事项

  1. 当前的登录终端,只能管理当前终端的工作,而不能管理其他登录终端的工作
  2. 放入后台的命令必须可以持续运行一段时间,这样我们才能捕捉和操作这个工作
  3. 放入后台执行的命令不能和前台用户有交互或需要前台输入,否则放入后台只能暂停,而不能执行

top、vi之类放在后台也是暂停的,因为一个需要用户来查看进程健康状态,一个需要用户写入

压缩、解压缩、cp、mv、find之类可以放在后台
所以,想要让这个命令在后台运行,首先,不能与用户有交互。其次,它要运行一段时间

把进程放入后台

1
2
3
4
5
tar -zcf etc.tar.gz /etc &
#在命令后加个&,把命令放在后台执行
top
#ctrl+z放在后台暂停

查看后台的工作

1
2
3
4
5
6
jobs [-l]
-l:显示工作的PID
jobs默认是绑定终端的
+代表最后一个放入的进程,也是工作恢复时,默认恢复的工作
-代表倒二个放入的进程

把后台暂停的工作回复到前台执行

1
2
fg %工作号
# %可以省略,但要注意工作号和PID的区别

把后台暂停的工作回复到后台执行

1
2
bg %工作号
# 后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行

后台命令脱离终端执行

把命令放入后台,只能在当前登录终端执行。当用户logout时或关闭终端,会向该用户终端下所有,进程发送SIGHUP信号,后台程序就会停止

mysqld不会跟随关闭,d表示守护进程damon,守护进程damon进程开机运行,某一个用户退出终端不影响该程序的运行,但把所有需要脱离终端执行的命令都放到守护进程里不切实际

  1. 把需要后台执行的命令加入/etc/rc.local文件,自启动文件
  2. 使用系统定时任务,让系统在指定的时间执行某个后台命令
  3. 使用 nohup命令(常用)
    1
    2
    3
    nohup 命令 &
    nohup /root/for.sh &
    #可以是脚本

补充: