Назад | Перейти на главную страницу

linux как определить процесс для скрипта?

Я запустил скрипт postData.sh, но когда я выполняю «ps -ef», я не вижу скрипт в списке запущенных программ, но вижу запущенные дополнительные процессы -bash. Как мне определить pid, чтобы я мог убить скрипт, поскольку он сейчас находится в фоновом режиме?

спасибо, Дин

Чтобы получить PID процесса, используйте:

pidof postData.sh

Альтернативный способ:

pgrep postData.sh

Это может помочь вам найти его, так как он напечатает идентификатор процесса, идентификатор родительского процесса и расширенную команду.

ps -eo pid,ppid,start_time,command

и это сделает удобное дерево процессов.

pstree -pu

Если вы найдете что-то, что, возможно, захотите приостановить, чтобы оценить правильность этого процесса, вы можете kill -STOP <pid>, и продолжите с kill -CONT <pid>

Ладно, я решил это. в скриптах, которые я скопировал, отсутствовал #!/bin/bash и по какой-то причине, когда я запускаю сценарий в ps -ef, он просто отображается как -bash. Теперь, когда я добавил #!/bin/bash, он правильно отображается как

[root@sdi-prod-01 manytables]# ps -ef | grep postTemp
root     29165 28764  1 10:51 pts/12   00:00:00 /bin/bash ./postTemp.sh 1

grrrrrr, это раздражало, и все мои скрипты уже запущены, но я не могу их отличить из-за этого .... живи и учись, я думаю.

Если это последний процесс, на котором вы остановились, вы можете просто kill $!.

С помощью ps -x выводит всю команду.