возможно, это то, что вам нужно:
kill -9 $(nvidia-smi | awk '$2 == "GPU" && $3 == "PID" {flag = 1} flag && $3 > 0 {print $2, $3}' | awk '$1 == 2 {print $2}')
Для более сложных условий вы можете изменить условия второй команды awk
. Например, следующую команду можно использовать для уничтожения всех процессов, использующих GPU -0 до GPU -3 и PID > 1000:
kill -9 $(nvidia-smi | awk '$2 == "GPU" && $3 == "PID" {flag = 1} flag && $3 > 0 {print $2, $3}' | awk '$1 < 4 && $2 > 1000 {print $2}')
Как видите, kill -9 PIDs
нужны PID для завершения процессов, а awk
используется дважды, чтобы найти допустимые PID для уничтожения.
В частности, первая команда awk
выберет строки после строки «GPU PID Type Process Name», а затем распечатает строки идентификаторов GPU и PID с пробелом между каждым идентификатором GPU и PID. Второй awk
найдет определенные идентификаторы GPU или PID, что в данном случае означает поиск всех процессов, использующих GPU -2, а затем распечатку PID. Наконец, kill -9 PIDs
уничтожит процессы в соответствии с этими PID.
вы можете использовать зарезервированное слово time, чтобы распечатать статистику синхронизации для конвейера после завершения AS в руководстве по Bash следующим образом:
[время [-p]] [!] команда1 [ | или |& команда2 ]
В настоящее время статистика состоит из прошедшего (настенного -времени )времени, а также пользовательского и системного времени, затраченного на выполнение команды. Опция -p изменяет формат вывода на указанный в posix. Когда оболочка находится в режиме posix (, см. Раздел 6.11 [Режим Bash POSIX], с. 99 ), она не распознает время как зарезервированное слово, если следующий токен начинается с ‘ -’. Для переменной TIMEFORMAT может быть задана строка формата, указывающая, как должна отображаться информация о времени. См. Раздел 5.2 [Переменные Bash], с. 73, для описания доступных форматов. Использование time в качестве зарезервированного слова позволяет синхронизировать встроенные функции оболочки, функции оболочки и конвейеры. Внешняя команда времени не может легко синхронизировать их.
Когда оболочка находится в режиме posix (, см. Раздел 6.11 [Режим Bash POSIX], с. 99 ), за временем может следовать новая строка. В этом случае оболочка отображает общее время пользователя и системы, затраченное оболочкой и ее дочерними элементами. Переменная TIMEFORMAT может использоваться для указания формата информации о времени.