Справочная страница для tcsh
- это место для начала, потому что она дает пример, который можно адаптировать:
Например, alias print 'pr! * | lpr '' определяет «команду» ( «print» ), которая передает свои аргументы линейному принтеру.
Таким образом:
alias cd 'cd \!* ; ls'
Это работает (см. Раздел Подстановка псевдонима ), потому что tcsh
обнаруживает использование cd
в псевдониме и прекращает повторение :
Подстановка псевдонима повторяется до тех пор, пока у первого слова команды не будет псевдонима. Если подстановка псевдонима не изменяет первое слово (как в предыдущем примере), она помечается флажком, чтобы предотвратить возникновение цикла. Обнаруживаются другие петли, которые вызывают ошибку.
Puede hacerlo a través de:
for i in $(pgrep -U $UID_OF_ANOTHER_USER); do kill -9 $i; done
O
pkill -U $UID_OF_ANOTHER_USER
Puede usar el primero para hacer algo más que simplemente matar esos procesos, como enumerarlos todos mientras mata.
Aquí hay una solución simple, que funcionará si eres root.
su $uid -c kill SIGSTOP -1
Explicación :Conviértete en ese usuario y mata todo lo que puedas.
Todas las soluciones requerirán el permiso CAP _KILL (para eliminar cualquier proceso ), o ser root tradicional (root tiene este permiso ), y permiso (capacidad para cambiar su propio uid ), como se usa en esta solución.
Tenga en cuenta que envié sigstop, esto detendrá el proceso (según lo solicitado ☺ ). Elige la señal que quieras. Utilice sigkill como último recurso.
killall -u $user -STOP
Esto es seguro si se ejecuta como otro usuario y (para otras señales )si ningún proceso principal pertenece al usuario afectado.
ctrl -alt -la solución de delor probablemente sea mejor (más segura ). Sin embargo, este tiene la ventaja de darte un código de salida real. El otro probablemente no, ya que tanto su
como kill
son asesinados.