📜  如何在 linux 中隐藏登录后台作业 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:38:20.470000             🧑  作者: Mango

如何在 Linux 中隐藏登录后台作业 - Shell/Bash

在 Linux 中,我们可以使用 crontab 或者 at 等命令来执行定时任务,这些任务会在后台运行,并且不会占用终端。但是,有时我们需要在终端中执行一个会花费很长时间的任务,这时我们可以使用 nohup 命令让任务在后台运行,同时不会受到终端的影响。不过,有时候我们可能不想让别人知道我们在运行这个任务,这时就需要隐藏登录后台作业了。

一、使用 nohup 和 & 符号将任务放到后台执行

首先,我们需要将任务放到后台执行。使用 nohup 命令可以让任务在后台运行,并且不会受到终端的影响。在命令后面加上 & 符号,则可以将任务放到后台执行。

nohup command &
二、使用 ps 命令查看已经在后台运行的任务

使用 ps 命令可以查看当前系统中正在运行的任务,包括在后台运行的任务。命令如下:

ps aux

该命令会列出当前系统中正在运行的所有进程,其中包括进程的 PID,CPU 占用率,内存占用率等信息。

三、使用 kill 命令结束指定的后台任务

如果我们想要结束某个后台任务,可以使用 kill 命令。在使用 kill 命令之前,我们需要查找该任务对应的进程 PID。可以使用 ps 命令查找对应的 PID,然后使用下面的命令结束该进程:

kill PID
四、如何隐藏登录后台作业

现在,我们进入正题,如何隐藏登录后台作业。为了隐藏某个后台任务,我们需要让该任务不出现在 ps 命令的输出结果中。具体的方法如下:

  1. 执行命令时,使用 nohup 和 & 符号将任务放到后台执行。
nohup command &
  1. 使用 disown 命令将任务移出 shell 的作业列表中。
disown -h PID

该命令可以将某个任务从 shell 的作业列表中移除,从而让该任务不会出现在 ps 命令的输出结果中。

  1. 关闭当前终端或者注销当前用户。

在任务移出 shell 的作业列表后,关闭当前终端或者注销当前用户,该任务就会在后台继续运行,同时不会出现在 ps 命令的输出结果中。

五、总结

通过使用 nohup 和 disown 命令,我们可以将任务放到后台执行,并且让该任务不会出现在 ps 命令的输出结果中,从而实现隐藏登录后台作业的目的。