有没有办法在重新启动时制作/运行 bash 脚本(例如在 Debian/Ubuntu 中,因为那是我家里的 2 个盒子所拥有的)
另外,有没有推荐的做 cron 工作的指南?我对他们完全陌生(但他们会很有用)
给定一台商用 PC,我们想用它在后台全天候执行一些任务。
基本上,我们希望有如下命令:
add-task *insert command here*
list-tasks
remove-task(s)
Run Code Online (Sandbox Code Playgroud)
添加的任务应该简单地放在一个队列中并在后台一个接一个地执行(在注销 shell 后保持运行)。
是否有任何简单的脚本/程序可以做到这一点?
我刚刚dot用一个输入文件执行(一个绘制有向图的程序),该文件太大以至于无法在合理的时间内呈现。
我的整个系统都僵住了。我几乎不能使它与文本控制台Ctrl+ Alt+F1杀dot,但花了几分钟的时间。
为什么系统允许这样的事情?为什么它提供一个非关键程序,例如dot系统的 99%,而使用剩余的 1% 来保持响应?
我试图在终端中编辑 crontab,但我不小心输入crontab -r了crontab -e. 谁会想到这样危险的命令会坐在字母旁边来编辑 crontab?而且,我还在琢磨怎么不crontab -r求你确认?
不管我对这如何可能缺乏可信度,我的问题是:我能恢复丢失的 crontab 吗?
与许多其他 torrent 客户端不同,qbittorrent 没有调度工具。理想情况下,您可以在一天中的特定时间、特定日期限制下载。
有解决方法吗?是否有单独的调度工具可用于暂存 qbittorrent?如果没有,最好的脚本解决方案是什么?
最新版本的 Linux 内核 (3.x) 是否仍然使用 2.6.x 中引入的完全公平调度程序 (CFS) 进行进程调度?
如果没有,它使用哪一个,它是如何工作的?请提供来源。
我想问一下 cron 工作。好的,我们将脚本放在 crontab 中,然后 cron 守护程序执行它们。
现在,如果我理解这一点,每分钟,cron 都会检查每个用户的 crontab 并执行配置的脚本。但这实际上是如何完成的?它是否分叉子进程等?
它不能按顺序执行任务,因为时间会丢失(例如,由于等待长时间运行的脚本完成)。那么这实际上是如何实施的。
只是为了提供帮助,我不是在寻找低级代码。高级描述(可能是算法?)或在大多数发行版中如何实现对我来说就足够了。
当计算机未满负荷运行时,在 Linux 环境中,它实际上做了什么?在调度线程之间,如果无事可做,是否自旋等待?它是否进入某种睡眠状态?
当一台计算机报告它处于 20% 的负载时,这是否真的意味着(给予或接受)它 80% 的时间什么都不做?
我正在尝试了解完全公平调度程序 (CFS)。根据Linux 内核开发中的Robert Love ,第 3 版(斜体他的,粗体我的):
CFS 不是为每个进程分配一个时间片,而是根据可运行进程总数计算进程应该运行多长时间。CFS 不使用 nice 值来计算时间片,而是使用 nice 值来加权进程将接收的处理器比例:较高值(较低优先级)的进程相对于默认 nice 值接收分数权重,而较低值(更高的优先级)进程获得更大的权重。
然后每个进程运行一个“时间片”,该时间片与其权重除以所有可运行线程的总权重成正比。为了计算实际时间片,CFS 为其在完美多任务处理中“无限小”调度持续时间的近似值设定了目标。这个目标称为目标延迟......让我们假设目标延迟是 20 毫秒,并且我们有两个具有相同优先级的可运行任务。无论这些任务的优先级如何,每个任务都会运行 10 毫秒,然后抢占另一个。如果我们有四个相同优先级的任务,每个任务将运行 5 毫秒。如果有 20 个任务,每个任务将运行 1 毫秒....
现在,让我们再次考虑两个可运行进程的情况,除了有不同的 nice 值——比如说,一个使用默认的 nice 值(零),另一个的 nice 值为 5。这些 nice 值具有不同的权重,因此我们的两个进程接收处理器时间的不同比例。在这种情况下,权重对 nice-5 过程产生大约 1/3 的惩罚。如果我们的目标延迟再次是 20 毫秒,我们的两个进程将分别收到 15 毫秒和 5 毫秒的处理器时间。
第一个粗体句子表示无论优先级如何,任务都具有相同的时间片,而第二个表示时间片取决于 nice 值。哪个是正确的,或者我错过了什么?