linux - ошибка процесса уже запущена - PullRequest
2 голосов
/ 26 мая 2011

Я пытаюсь запустить процесс, и хотя ps -ef | grep myprocessname не показывает его работоспособность, при запуске сценария для запуска он говорит, что процесс уже запущен и завершается.

Я искал в Интернетеоколо часа и я не могу найти ответы.Кто-нибудь может помочь?Спасибо.

@ TILO: В каталоге / var / run нет файла, имя которого близко к моему процессу.Любые другие предложения?

@ VKRAM: Это стороннее программное обеспечение.Какие-либо предложения?

Ответы [ 3 ]

2 голосов
/ 26 мая 2011

проверьте в / var / run, есть ли файл .pid для процесса, который вы пытаетесь запустить.

Например, /var/run/mysqld/mysqld.pid будет таким файлом.

Этот файл содержит PID процесса ...

Запустите ps -edaf |grep PID # с pid, который вы найдете в файле

, если процесс не найден, вы можете удалить pid-файл - затем попробуйте запустить ваш процесс заново

1 голос
/ 26 мая 2011

Попробуйте использовать strace для рассматриваемой программы:

strace yourprogram

Незадолго до его завершения вы должны увидеть системные вызовы, которые он использовал, чтобы определить, что запущен другой экземпляр, и оттуда выполнить обратный инжиниринг используемого им метода.

0 голосов
/ 26 мая 2011

вы сказали, что не можете найти PID-файл ...

  1. Если вы не можете найти PID-файл (возможно, из-за того, что некоторые каталоги находятся в / var / runглубоко вложены), попробуйте это, чтобы увидеть список всех PID-файлов:

    find / var / run -type f -name '* .pid'

    find / var -введите f -name '* .pid'

    возможно, вы увидите имя файла, которое похоже на имя процесса, который вы пытаетесь запустить.Или вы можете также поставить grep в конце этой строки и попытаться выполнить поиск имени процесса в списке с помощью grep.

  2. Некоторые программы также используют блокировку файлов - обычно это может бытьнаходится в / var / lock / или / var / lock / subsystem

  3. Если это не поможет, попробуйте взглянуть на используемый вами старт-скрипт, например, в /etc / init.d / Посмотрите на это подробно и найдите что-то вроде LOCK_FILE или PID_FILE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...