“静默”后台运行进程

“静默”后台运行进程

我已将 添加git pull &到我的 bashrc 中以使特定项目始终保持最新!

然而这意味着每次我打开终端时我都会收到类似的消息

[17]+ Running git pull

几秒钟后

[17] Done

有没有办法停止此输出?我已经将所有输出发送到 dev null,因此完整命令是 git pull >/dev/null 2>&1 &

答案1

屏幕上的信息是背景工作,不是工作本身。

尝试这个:

#!/bin/bash

exec &> /dev/null
git pull

在这个变体中,后台作业的进程是一个脚本,已经重定向所有输出。

当然,这样的命令实际上应该放在你的 bash_login 或 .profile 中,而不是 .bashrc 中。

答案2

你可以使用在(1)甚至批次(1)启动你的命令:

echo git pull | at now 2>/dev/null

这样,如果您立即注销,它也不会收到 SIGHUP。这2>/dev/null将阻止job 1334584295.a at Mon Apr 16 15:51:35 2012命令。

您可能需要添加您的用户名/usr/lib/cron/at.allow(此文件的位置可能因我们的 UNIX/Linux 版本而异)。

答案3

使用nohup:

nohup git pull &

答案4

我发现使用子 shell 可以使作业的后台运行静默:

(git pull &)

相关内容