Я запустил скрипт 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
выводит всю команду.