Предполагая, что ваши файлы расположены в правильном порядке (цель, затем имя ссылки), и что ни одно имя файла не содержит специальных символов или пробелов:
sed 's/^/ln -sf /g' < src/symlinks | sh
преобразует ваш список симлинков в серию команд ln -sf
и запустит его с помощью sh
.
Из чтения man systemd-run
, он создаст службу
и, таким образом, контрольную группу
на лету. При чтении systemd.exec
директива Nice =
будет применяться ко всем выполняемым процессам, поэтому systmd
обрабатывает концепции Nice =
и CPUShares =
очень похожи.
Насколько я понимаю, эти отношения связаны с историей. nice
существует уже несколько десятилетий и всегда применяется к конкретным процессам.
С другой стороны, концепция cgroups
и идея применения CPUShares =
к группе процессов - гораздо более новая концепция, но преследует ту же цель.
Я ожидаю, что systemd
поддерживает Nice =
для исторической совместимости.
Я бы использовал то, что вам удобно, но не оба, чтобы избежать путаницы. Если у вас нет предпочтений, я бы использовал новую концепцию CPUShares =
.
В Linux
Планировщик задач Linux по умолчанию -не реального времени (CFQ )распределяет процессорное время «справедливо» между различными контрольными группами. Он будет использовать значение cpu.shares
каждой контрольной группы (по умолчанию 1024 )по сравнению со значениями cpu.shares
других контрольных групп, чтобы предоставить больше или меньше процессорного времени каждой контрольной группе (больше долей = больше пропускной способности процессора ).
Теперь, внутри каждой контрольной группы , значение nice задачи будет использоваться для предоставления ей большего или меньшего процессорного времени по сравнению со значениями nice других задач в той же контрольной группе .
sched (7)говорит:
Under group scheduling, a thread's nice value has an effect for scheduling decisions only relative to other threads in the same task group.
Дополнительные примечания:
cat /proc/sys/kernel/sched_autogroup_enabled
, systemd-cgtop
иsystemd-cgls
).