📅  最后修改于: 2023-12-03 14:44:44.998000             🧑  作者: Mango
在 Linux 系统中,当使用 shell 执行一个程序时,如果该 shell 退出,那么该程序也会随之退出。如果我们需要在后台运行一个程序,且在 shell 退出后该程序仍然运行,那么可以使用 nohup 命令。nohup 表示 "no hang up",即不挂断。
nohup 的使用非常简单,只需要在要执行的命令前加上 nohup 命令即可:
nohup command &
其中,command
表示要执行的命令,&
表示在后台运行。
例如,在后台运行一个 python 脚本:
nohup python script.py &
当使用 nohup 命令时,所有的输出都会被重定向到一个名为 nohup.out
的文件中。如果不想输出到这个文件中,可以使用输出重定向符号 >
进行重定向:
nohup command > output.log &
这样输出就会被重定向到 output.log
文件中。
nohup 启动的程序不会在前台显示,也不是由当前 shell 管理的。如果需要查看该程序的运行状态,可以使用 ps
命令:
ps aux | grep command
其中,command
表示要查看的程序名称。
如果需要结束某个使用 nohup 启动的程序,可以使用 kill
命令:
kill pid
其中,pid
表示要结束的程序的进程 ID。
使用 nohup 命令可以让程序在后台运行,即使当前 shell 退出,程序也不会停止。通过输出重定向符号 >
可以将输出重定向到指定文件中。使用 ps
命令可以查看运行状态,使用 kill
命令可以结束程序。