任务完成后如何关闭计算机?

我通常在上学前开始下载。
在特定任务完成后,我应该使用哪个命令自动进行必要的保存并关闭计算机?
(比如说,安装更新后,或下载大文件后。)

我也在unix.stackexchange上交叉发布了这个。

要做一次以使您能够在没有密码的情况下关闭机器:

打开命令行并键入:

sudo visudo 

在打开的文件中,在末尾添加以下行:

 yourusername ALL=NOPASSWD: /sbin/halt 

然后退出编辑器并保护它( Ctrl + X )。

现在,您可以从命令行关闭计算机,例如在下载之后:

 wget UrlOfTheFileYouWantToDownload && sudo halt 

我知道这并不能完全回答你的问题,但你也可以让它基于时间,即如果你认为你的下载将在2小时内完成,你可以简单地发出命令:

 shutdown -h +120 

要在更新后关闭,您可以使用此python脚本: http : //kotbcorp.blogspot.com/2009/06/shutdown-after-update-in-ubuntu.html

要在下载后关闭我使用此命令:

 wget http://somehwere.com/path/to/some.file && halt 

其他答案是正确的,但缺少一些东西:

 wget UrlOfTheFileYouWantToDownload ; sudo halt 

VS

 wget UrlOfTheFileYouWantToDownload && sudo halt 

第二个只会wget成功返回时关闭计算机。 无论wget成功返回还是失败,第一个都将停止运行。

您可以使用下载管理器或Torrent客户端在完成后关闭电脑,或者假设您正在对磁盘进行碎片整理,您可以在完成后单击关闭,这在大多数软件中都可用

我想这很大程度上取决于你如何“下载”。

如果您正在谈论apt-get更新,升级顺序,以root身份使用&&将命令串在一起(如果没有错误,则序列只会继续)

 sudo su - apt-get update && apt-get upgrade && shutdown -h now 

如果您正在谈论下载(例如使用wget)[再次使用&&表示法将命令串在一起,确保命令仅在前一个命令成功时按顺序执行]

 sudo su - wget -t0 -c http://somedownloadsite/path/file.foo && shutdown -h now 

如果您的下载是由图形客户端(gui)完成的,那么它将取决于该客户端在成功下载后执行脚本的机制。

我个人发现使用gedit更容易设置原始版本

 yourusername ALL=NOPASSWD: /sbin/halt 

因为sudo visudo对我很困惑,并没有清楚地显示最后一行

所以我用过

 sudo -H gedit /etc/sudoers 

然后结束了一个明确的(对我而言)页面

 # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL #includedir /etc/sudoers.d shantiq ALL=NOPASSWD: /sbin/halt 

只是想我会提到,以防其他人也有点困惑

您可以执行以下操作,而不是更改关闭时的权限:

 sudo bash -c 'apt-get update; apt-get dist-upgrade; shutdown -h now' 

这样做是以root身份运行bash提示符,执行单引号列表中的项目然后退出。 这种方法的好处是Ubuntu会在一段时间后忘记你的初始sudo身份validation(取决于设置的超时时间 – 默认情况下为15分钟),遇到你机器的人只能停止当前命令,而不是运行新命令。 此外,对于每个人都说要使用su ,请尝试:

 sudo -s 

我认为你不能这样做……你无法知道特定应用何时完成了它的事情。

我曾经做过sudo su; sleep 3600; halt; sudo su; sleep 3600; halt;