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


8

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

我也将此交叉发布在unix.stackexchange上


1
如果您下载种子,那么其中一些可以选择在完成后关闭。确保完成意味着100%,而不是播种。如果通过命令行执行此操作,只需在命令末尾附加&&暂停即可自动停止PC。&&表示在之后执行。
theTuxRacer 2010年

恕我直言,几乎所有答案都是正确的。您提供的有关下载和程序使用类型的详细信息越多,我们就越准确:)
Pitto 2010年

我认为在您的跨岗位中基于过程的答案是我所见过的最好,最灵活的答案之一。 unix.stackexchange.com/a/65060/21070您可能可以使用`ps -elf | grep <somthing_related_to_task>标识将在流程结束时到期的PID。
TafT

Answers:


8

我知道这不能完全回答您的问题,但是您也可以使其基于时间,即,如果您认为下载将在2小时内完成,则只需发出命令即可:

shutdown -h +120

8

要执行一次以使您无需密码即可关闭机器,请执行以下操作:

打开命令行并输入:

sudo visudo 

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

yourusername ALL=NOPASSWD: /sbin/halt

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

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

wget UrlOfTheFileYouWantToDownload && sudo halt

4
为确保wget返回没有错误,请替换为“;” 与“ &&”。
David Rivers


3

其他答案是正确的,但缺少一些内容:

wget UrlOfTheFileYouWantToDownload ; sudo halt

wget UrlOfTheFileYouWantToDownload && sudo halt

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


2

您可以在完成后使用下载管理器或torrent客户端关闭计算机,或者假设您对磁盘进行碎片整理,则可以在完成后单击“关闭”,这在大多数软件中都可用


2

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

如果您谈论的是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)完成的,则下载成功后将取决于该客户端执行脚本的机制。


2
这些命令将不起作用,因为sudo su -启动了一个新的shell,并且在新的shell终止之前,分号后的命令不会执行。
loevborg

公平的评论。已修改说明以表明它们是单独的命令序列。
Finley 2010年

1

我个人发现使用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

只是以为我会提到,万一其他人也有些困惑


1

除了更改关机权限以外,您可以执行以下操作:

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

这样做是作为根运行bash提示,该提示执行单引号列表中的项目,然后退出。这种方法的好处是,Ubuntu将sudo在一段时间(取决于设置的超时时间-默认为15分钟)后忘记您的初始身份验证,并且遇到您的计算机的人只能停止当前命令,而不能运行新命令。另外,对于每个说要使用的人su,请尝试:

sudo -s

如果网络短暂中断并且apt-get无法正常工作怎么办?
Quamis 2010年

1
我认为您仍然想关机。如果-c中命令的任何阶段失败,则其他命令将继续,因为我使用了分号而不是&&(与&&链接的任何命令只有在每个命令依次成功时才起作用)。
Calcipher 2010年

0

我认为您无法做到这一点……您无法知道特定应用程序何时完成其工作。

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


为什么投票失败?
Quamis

有人可能不同意“没有办法知道”这一部分吗?
belacqua 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.