1. **概念** - `nohup`是“no hang up”的缩写,它用于在Linux系统中运行一个命令,使得这个命令在用户退出登录或者终端关闭后仍能继续在后台运行。这在执行一些长时间运行的任务(如大型数据处理、服务器监控脚本等)时非常有用,避免了因终端会话结束而导致任务中断。 2. **使用方法** - 基本语法是`nohup command [arguments] &`。例如,如果你想在后台运行一个Python脚本`long_running_script.py`,可以使用命令`nohup python long_running_script.py &`。 - 当执行`nohup`命令后,它会将命令的标准输出(stdout)重定向到一个名为`nohup.out`的文件中(默认情况下)。如果当前目录没有写权限,可能会将输出重定向到用户主目录下的`nohup.out`文件。你可以通过指定输出文件来改变这一情况,例如`nohup python long_running_script.py > my_output.log &`,这样输出就会被重定向到`my_output.log`文件中。 3. **查看运行中的nohup任务** - 可以使用`ps -ef`命令来查看正在运行的进程。例如,如果你想查看刚才运行的Python脚本进程,可以在终端中输入`ps -ef | grep long_running_script.py`,这会列出包含该脚本名称的进程信息,包括进程ID(PID)、用户、启动时间等内容。 - 如果你想检查`nohup`命令输出的文件内容,可以使用文本查看工具,如`cat`、`less`或`more`。例如,若输出被重定向到`nohup.out`,可以使用`cat nohup.out`来查看文件内容,以了解任务的执行进度或结果。 4. **终止nohup任务** - 首先通过`ps -ef | grep [command_name]`找到任务对应的进程ID(PID)。例如,找到运行`long_running_script.py`的PID。 - 然后使用`kill -9 [PID]`命令来终止该进程。不过要注意,`kill -9`是一种强制终止的方式,可能会导致一些数据丢失或者未完成的清理工作无法进行。如果可能的话,优先使用`kill`(不带`-9`)来尝试正常终止进程,它会发送一个终止信号给进程,让进程有机会进行一些清理工作后再终止。 |
GMT+8, 2024-12-27 10:15 , Processed in 0.034109 second(s), 19 queries , Gzip On.
Powered by Discuz! X3.5
© 2001-2024 Discuz! Team.