Как завершить скрипт оболочки?

Я работаю над суперкомпьютером и имею сценарий оболочки, который автоматически назначит мне кучу заданий. После запуска скрипта я могу завершить вручную с помощью Ctrl + C. Я запускал сценарий из сеанса screen unix и закрывал screen , но сценарий каким-то образом все еще запущен и отправляет задания. Кажется, что он застрял в петле и не заканчивается, тем самым потребляя драгоценные часы ядра.

Я попробовал ps -u [user] но он не появляется. Я знаю, что он все еще работает в фоновом режиме и просто нужно его убить.

Изменить: uname -a дает следующий результат:

 Linux blogin3 2.6.32-431.20.3.el6.x86_64 #1 SMP Thu Jun 19 21:14:45 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 

Поэтому я предполагаю, что суперкомпьютер работает под управлением Linux.

Это трудно отладить с предоставленной вами информацией, но подумайте над этим:

 $ cat foo.sh #!/usr/bin/env bash while true do echo yes; done 

Это просто простой бесконечный цикл. Если я запустил скрипт с ./foo.sh , я могу найти его в выводе ps :

 $ ps aux | grep foo.sh terdon 25568 0.0 0.0 10996 1424 pts/12 S+ 16:19 0:00 bash /home/terdon/scripts/foo.sh terdon 25982 0.0 0.0 10356 928 pts/11 S+ 16:23 0:00 grep --color foo.sh 

Чтобы убить его, самым простым подходом было бы использовать pkill и его флаг -f :

  -f, --full The pattern is normally only matched against the process name. When -f is set, the full command line is used. 

Поэтому постарайтесь:

 pkill -f foo.sh