如何在后台运行“apt-get install”?

如何在后台运行“apt-get install”?

例如,当我尝试安装一个包时,使用命令sudo apt-get install nsnake &,进程立即停止。我可以将其带到前台并输入我的 sudo 密码,暂停它(使用Ctrl- Z),然后再次将其发送回后台。但随后 shell 将立即暂停该进程,例如,

katriel@caseylaptop:~$ bg     
[2]+ sudo apt-get install nsnake &   
[2]+  Stopped                 sudo apt-get install nsnake

是否可以在后台安装软件包?我可能想在通过 SSH 连接的计算机上安装大型软件包时执行此操作。

答案1

是的,当然。

执行你的apt-get命令周围有奇特的东西

sudo bash -c 'apt-get -y install guake >/dev/null 2>&1 & disown'

部分解说:

  • sudo bash -c部分产生一个新bash进程,并apt-get -y install guake >/dev/null 2>&1 & disown在新外壳内运行。

  • 然后在新的子 shell 中运行这些命令:

    • apt-get -y install guake:您想要运行的主要 apt-get 命令。

      • >/dev/null 2>&1将 stdout 和 stderr 通过管道传输到 /dev/null。
    • & disown放弃先前的作业并退出子shell。

答案2

我总是喜欢用屏幕在后台运行程序。

答案3

添加 & 符号&即可运行任何程序运行时返回到提示符,例如

sudo apt-get -y install nsnake &

但是,您可能会定期在 shell 中弹出某些事件和通知。要隐藏这些事件,请将它们传输到 STDOUT

sudo apt-get -y install nsnake >/dev/null &

答案4

这是一种解决方法,但首先使用 sudo 运行任何程序,例如sudo ls。您的 sudo 授权将被记住一段时间。然后您可以直接运行sudo apt-get -y install nsnake &,并且不会再次要求您输入密码(除非已经过了一段时间并且授权已过期)。

相关内容