在后台可靠地运行进程有时会想要在后台运行脚本、实用程序或命令行。然而,大部分系统在用户断开连接或注销时将终止在后台运行的命令,如果想要先登录,启动命令,然后再注销,这时会发现并不是想要的结果。
如果需要重新启动,或者重新初始化后台或没有自动进行守护的守护进程,或者依赖于独立的脚本来开始和管理守护应用程序的执行,在这些情况下命令执行的终止是非常让人沮丧的。MySQL
mysqld_safe 脚本是一个很好的例子,它正是以这种方式进行工作的。
要防止应用程序在您注销时自动终止,可以使用 nohup
命令作为要运行的命令行或工具的前缀,如下所示:
除非专门为命令的输出进行重定向,否则 nohup
自动将标准输出和标准错误写入当前目录下名为 nohup.out
的文件中。
使用标准重定向可以输出到自己的文件,但请记住,要同时重定向输出和错误流,例如:
- $ nohup find/ -name core >/tmp/corefind.out 2>&1
复制代码 我发现自己总是无意识地使用 nohup
来运行任何我认为持续时间将长于 2、3
分钟的命令,即使是在控制台中运行该命令。这可能在很大程度上和输出的自动重定向有关,而不是在连接失败时防止终止的能力。
阅读(1016) | 评论(0) | 转发(0) |