我可以在Linux中对Bash脚本进行优先级排序吗?这些脚本的子脚本是否继承优先级?

我可以在Linux中对Bash脚本进行优先级排序吗?这些脚本的子脚本是否继承优先级?,bash,inheritance,task,Bash,Inheritance,Task,我有一个使用视频播放器在小电脑上播放各种电影剪辑的脚本。它很光滑。然而,每当运行cron作业下载大文件时,视频提要就会开始闪烁。我相信这是因为在下载和播放的同时需要进行读/写操作 我的问题是: 我可以在Linux中对任务进行优先级排序吗 优先任务是否可以是Bash脚本 如果是,从该优先级脚本运行的脚本和程序是否会继承优先级?您可以在启动进程时使用nice命令或在现有进程上使用renice命令设置进程优先级 任何正常的用户进程都可以具有较低的优先级。只有根拥有的进程才能具有更高的优先级 要启动低优

我有一个使用视频播放器在小电脑上播放各种电影剪辑的脚本。它很光滑。然而,每当运行cron作业下载大文件时,视频提要就会开始闪烁。我相信这是因为在下载和播放的同时需要进行读/写操作

我的问题是:

我可以在Linux中对任务进行优先级排序吗

优先任务是否可以是Bash脚本


如果是,从该优先级脚本运行的脚本和程序是否会继承优先级?

您可以在启动进程时使用
nice
命令或在现有进程上使用
renice
命令设置进程优先级

任何正常的用户进程都可以具有较低的优先级。只有根拥有的进程才能具有更高的优先级

要启动低优先级进程,请使用以下命令

nice-10 mycommand.sh

在这种情况下,优先级为10,这是一个比正常优先级更低的优先级,进程在系统上的优先级将低于未使用nice启动的命令


默认情况下,子进程与其父进程具有相同的优先级

您可以在启动进程时使用
nice
命令或在现有进程上使用
renice
命令设置进程优先级

任何正常的用户进程都可以具有较低的优先级。只有根拥有的进程才能具有更高的优先级

要启动低优先级进程,请使用以下命令

nice-10 mycommand.sh

在这种情况下,优先级为10,这是一个比正常优先级更低的优先级,进程在系统上的优先级将低于未使用nice启动的命令


默认情况下,子进程与其父进程具有相同的优先级

另一个答案已经提到了调度优先级,它肯定回答了确切的问题。也就是说,我认为你的单词prioritize被用了一种有点不寻常的方式,你的意思是如何使批量下载不影响其他网络。这个问题的答案是交通管制

下面是一个流量调整脚本示例(来自funtoo.org)

您需要做的是通过只授予有限的带宽,找出您想要取消优先级的流量类型的标准[1]。这些设置可能位于系统启动配置中的某个位置,而不是运行的脚本中

[1] 您从中下载的地址或协议、正在下载进程的cgroup等

另见

另一个答案已经谈到了调度优先级,它肯定回答了确切的问题。也就是说,我认为你的单词prioritize被用了一种有点不寻常的方式,你的意思是如何使批量下载不影响其他网络。这个问题的答案是交通管制

下面是一个流量调整脚本示例(来自funtoo.org)

您需要做的是通过只授予有限的带宽,找出您想要取消优先级的流量类型的标准[1]。这些设置可能位于系统启动配置中的某个位置,而不是运行的脚本中

[1] 您从中下载的地址或协议、正在下载进程的cgroup等

另见

谢谢您的明确回答。后续问题:低优先级在实践中到底意味着什么?这是否意味着它需要更长的时间来执行,还是意味着它将被忽略?假设您有一个简单的小树莓Pi,并设置了一个cron作业,每周发送一次“helloworld”,但任务设置为nice-100。这是否意味着,如果它有其他事情需要做,它将永远不会发送任何东西?这一页解释得比我感谢你的明确回答更好。后续问题:低优先级在实践中到底意味着什么?这是否意味着它需要更长的时间来执行,还是意味着它将被忽略?假设您有一个简单的小树莓Pi,并设置了一个cron作业,每周发送一次“helloworld”,但任务设置为nice-100。这是否意味着如果它有其他需要做的事情,它将永远不会发送任何东西?这一页比我解释得更好
modemif=eth4
iptables -t mangle -A POSTROUTING -o $modemif -p tcp -m tos --tos Minimize-Delay -j CLASSIFY --set-class 1:10
iptables -t mangle -A POSTROUTING -o $modemif -p tcp --dport 53 -j CLASSIFY --set-class 1:10
iptables -t mangle -A POSTROUTING -o $modemif -p tcp --dport 80 -j CLASSIFY --set-class 1:10
iptables -t mangle -A POSTROUTING -o $modemif -p tcp --dport 443 -j CLASSIFY --set-class 1:10
tc qdisc add dev $modemif root handle 1: htb default 12
tc class add dev $modemif parent 1: classid 1:1 htb rate 1500kbit ceil 1500kbit burst 10k
tc class add dev $modemif parent 1:1 classid 1:10 htb rate 700kbit ceil 1500kbit prio 1 burst 10k
tc class add dev $modemif parent 1:1 classid 1:12 htb rate 800kbit ceil 800kbit prio 2
tc filter add dev $modemif protocol ip parent 1:0 prio 1 u32 match ip protocol 0x11 0xff flowid 1:10
tc qdisc add dev $modemif parent 1:10 handle 20: sfq perturb 10
tc qdisc add dev $modemif parent 1:12 handle 30: sfq perturb 10