LINUX.ORG.RU

Как проверить запущен ли процесс?

 


1

2

Как на питоне проверить запущен ли процесс? В интернете куча ответов, но либо не подходят (типа через os.kill(), а мне убивать процесс не надо), либо не работают

Да, не по имени, а по pid, либo через переменную process:

process = subprocess.Popen(['screen', '-d', '-m', '-S', 'name', 'node', 'script.js', 'param'], stderr=subprocess.PIPE)

Перемещено leave из web-development

★★★★★

Последнее исправление: beastie (всего исправлений: 2)

не подходят (типа через os.kill(), а мне убивать процесс не надо)

man 2 kill

If sig is 0, then no signal is sent, but error checking is still performed; this can be used to check for the existence of a process ID or process group ID

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner
		while True:
			
			for process in processes:
				try:
					os.kill(process.pid, 0)
					print(process.pid, 'running')
				except:
					flag_run -= 1
					

			print(flag_run)

			if(flag_run == 0):
				break;

			sleep(5);

Все равно пишет running, даже если процесс давно убит

Qwentor ★★★★★
() автор топика
Последнее исправление: Qwentor (всего исправлений: 1)
Ответ на: комментарий от Qwentor

Ты как бы спрашиваешь: «Кто косячит, я или рантайм Python на пару с ядром?». Мне кажется, ответ очевиден. Как именно ты косячишь - не знаю. Может, процесс перезапускается очень быстро, может, остается в Z-состоянии после завершения, а может, у тебя тупо неправильные pid.

tailgunner ★★★★★
()
Ответ на: комментарий от kukuruku

не надо так делать, зачем писать линуксо-специфичный код, когда это легко можно сделать платформо-независимым образом.

Novel ★★★★
()
Ответ на: комментарий от Novel

ему запускаться строго под линуксом и нигде более, но так тоже не работает. Видимо, где-то точно накосячил. Искать буду

Qwentor ★★★★★
() автор топика
Последнее исправление: Qwentor (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.