El *_*rro 34 shutdown command-line
我通常在上学之前开始下载。
在完成特定任务后,我应该使用哪个命令来自动进行必要的保存并关闭计算机?
(例如,安装更新后,或下载大文件后。)
我也在askubuntu交叉发布。
pbm*_*pbm 27
这取决于你开始的任务。如果它是一些命令行工具,您可以简单地运行halt
或shutdown -h now
:
wget http://..../somelargefile; halt
-halt
将在之后执行wget
wget http://..../somelargefile && halt
-halt
如果wget
没有返回错误将被执行
wget http://..../somelargefile || halt
-halt
如果wget
返回错误将被执行
替代方法是使用kshutdown
- 在此应用程序中,您可以指定应执行的操作(重新启动/关机/休眠/等或命令执行)和时间(一段时间后或另一个应用程序退出时)。如果您想使用此工具,您需要选择正确的进程 - 一些更新实用程序会启动几个子进程。
moo*_*eep 24
每个进程在proc
文件系统中都有一个根据其进程 ID (pid) 命名的目录。因此,您可以通过检查其目录是否重复存在来等待特定进程的终止。
您可以使用它在进程终止后执行系统关闭,如下所示(用 pid 替换 2296 以等待):
su -c 'while [[ -d /proc/2296 ]]; do sleep 1; done; poweroff'
Run Code Online (Sandbox Code Playgroud)
好处:
sudo
-password 提示)。缺点:
如果您想监视已经启动的进程,您可以在shell中执行此操作:
# while pgrep &>/dev/null -f process_name; do sleep 60; done; shutdown -h now
Run Code Online (Sandbox Code Playgroud)
您可以使用&&
和||
运算符将命令链接在一起。例如:
apt-get update && sleep 2 && init 0
Run Code Online (Sandbox Code Playgroud)
这将使用 aptitude 对系统执行更新,等待 2 秒,然后转到运行级别 0,具体取决于您的系统,这可能会或可能不会实际关闭硬件电源。
要在更任意的操作(例如可能是 Web 浏览器)下载之后进行一个或多个操作,您将需要额外的逻辑来监视下载文件以验证下载实际上已完成,但是 shell 逻辑未更改。
归档时间: |
|
查看次数: |
33437 次 |
最近记录: |