📅  最后修改于: 2023-12-03 15:38:20.470000             🧑  作者: Mango
在 Linux 中,我们可以使用 crontab 或者 at 等命令来执行定时任务,这些任务会在后台运行,并且不会占用终端。但是,有时我们需要在终端中执行一个会花费很长时间的任务,这时我们可以使用 nohup 命令让任务在后台运行,同时不会受到终端的影响。不过,有时候我们可能不想让别人知道我们在运行这个任务,这时就需要隐藏登录后台作业了。
首先,我们需要将任务放到后台执行。使用 nohup 命令可以让任务在后台运行,并且不会受到终端的影响。在命令后面加上 & 符号,则可以将任务放到后台执行。
nohup command &
使用 ps 命令可以查看当前系统中正在运行的任务,包括在后台运行的任务。命令如下:
ps aux
该命令会列出当前系统中正在运行的所有进程,其中包括进程的 PID,CPU 占用率,内存占用率等信息。
如果我们想要结束某个后台任务,可以使用 kill 命令。在使用 kill 命令之前,我们需要查找该任务对应的进程 PID。可以使用 ps 命令查找对应的 PID,然后使用下面的命令结束该进程:
kill PID
现在,我们进入正题,如何隐藏登录后台作业。为了隐藏某个后台任务,我们需要让该任务不出现在 ps 命令的输出结果中。具体的方法如下:
nohup command &
disown -h PID
该命令可以将某个任务从 shell 的作业列表中移除,从而让该任务不会出现在 ps 命令的输出结果中。
在任务移出 shell 的作业列表后,关闭当前终端或者注销当前用户,该任务就会在后台继续运行,同时不会出现在 ps 命令的输出结果中。
通过使用 nohup 和 disown 命令,我们可以将任务放到后台执行,并且让该任务不会出现在 ps 命令的输出结果中,从而实现隐藏登录后台作业的目的。