Глядя на предоставленный вами код, кажется, что вы хотите иметь возможность отобразить файл в файловой системе обратно на физический диск, на котором он находится. Кажется, не рассматриваются RAID, LVM или зашифрованные файловые системы.
Следующий код напечатает дисковое устройство (s ), содержащее указанный файл. Для RAID и LVM файл может присутствовать более чем на одном устройстве; в этой ситуации будут напечатаны все соответствующие имена дисковых устройств, по одному в строке.
read -p 'Filename: ' file
devpart=$(mount | awk -v mount=$(stat --format '%m' "$file") '$3 == mount {print $1}')
lsblk --list | awk -v part="${devpart/#*\/}" '$6 == "disk" {disk = $1} $6 != "disk" && $1 == part {print disk}'
Обе команды являются подготовительными командами, выполняющими -следующую команду с сохранением измененного свойства. Таким образом, порядок здесь не будет иметь значения, пока измененные свойства не будут иметь побочного эффекта, изменяющего другие (, это нормально для этих двух ).
cgexec -> nice -> final executable
переместит следующий процесс nice
для выполнения в соответствующую контрольную группу , а nice
изменит качество конечного исполняемого файла (при сохранении контрольной группы ).
nice -> cgexec -> final executable
изменит правильность следующего процесса cgexec
, а cgexec
поместит окончательный исполняемый файл в соответствующую контрольную группу (, сохранив при этом правильность ).
Обе команды дадут одинаковый результат. Оба свойства(cgroup и niceness)автоматически распространяются на всех потомков следующего процесса. Таким образом, все, что порождено из prependPollen.py
, будет в процессоре :фоне и также будет иметь измененную привлекательность.
Любая другая подобная команда может быть вставлена в любом месте этого конвейера. Например, ionice -c 3
можно добавить на первое, второе или 3-е место, чтобы попытаться ограничить влияние ввода-вывода программы python на другие процессы (, в то время как существуют также cgroups , делающие это лучше. для этого обычно требуется cgroups v2 для правильной работы ).