经常遇到的一个需求,是需要Linux后台运行脚本或程序。对于这个需求,有两个最常用的工具:nohup和screen。
nohup启动一个后台进程,进程的输出输出到非终端。
screen可以在终端中创建和管理多个子终端窗口,通过在子终端窗口中运行程序,实现后台运行的效果。
这两个工具能够实现的功能基本相同。本文中,我们就来学习一下这两个工具的使用方法。
顺便说一下,TTY是电传打字机的缩写,后来发展为虚拟的电子TTY,也就是我们现在说的终端模拟器(terminal emulator)。
当执行 fg 将后台的命令调到前台来继续执行时,由于此时系统正处于执行该命令的前台运行状态,此时不能直接再调回到后台执行。需要先把前台运行的命令挂起,再用 bg 命令恢复执行,命令才会调至后台继续执行。
通过crontab设置定时任务时,nohup命令可以省略。例如: