Я хочу запустить некоторое приложение в фоновом режиме и позже убить его pid.Popen получает pid нового запуска
pipe = IO.popen("firefox 'some_url' 2>&1 &")
pipe.pid
Этот код запускает firefox и возвращает мне pid, но, к сожалению, это не firefox's pid.
pipe = IO.popen("firefox")
pipe.pid
Этот код запускает firefox и возвращает mi pid, firefox pid. Есть ли какое-нибудь решение для запуска внешнего приложения и получения его pid? Firefox, например, может быть любым другим приложением. Я также пробовал с libs, как: Open3 и Open4, но, похоже, тот же эффект. Я также удивляюсь, если '$!' переменная bash - хорошее решение для этого? Запустите что-то в фоновом режиме и прочитайте «$!», Что вы думаете?
Является ли это pid любого процесса runninng? В общем, команда, которую вы запускаете с помощью popen, может порождать любое количество других процессов, поэтому, если вам нужен определенный pid, вам нужно найти другой способ идентификации процесса, которым вы пользуетесь. – 2010-12-06 11:58:24