Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Остановка процесса не зная PID в Ubuntu  (Прочитано 1865 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sv2204

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Подскажите пожалуйста, запускаю с помощью cron несколько процессов в ubuntu server, делаю так (пример):

30 15 28 * * команда 1
30 16 28 * * команда 2
теперь задача, нужно задать в том же cron завершение процесса 1 к примеру в:

30 17 27 * *
При этом процесс 2 должен работать дальше без остановки, PID процесса неизвестен, COMMAND у них одинаковый (например ffmpeg), то есть команда:

30 17 28 * * killall ffmpeg
не подходит, так как она завершит оба процесса. Подскажите как решить эту проблемку, заранее спасибо!

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5633
  • Все по палатам!
    • Просмотр профиля
Re: Остановка процесса не зная PID в Ubuntu
« Ответ #1 : 28 Ноября 2015, 00:40:25 »
sv2204, найти все процессы по имени и убить все, кроме последнего. Скриптом.
http://pingvinus.ru/note/ps-kill-killall

Извините, я все еще учусь

Оффлайн sv2204

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Остановка процесса не зная PID в Ubuntu
« Ответ #2 : 28 Ноября 2015, 00:47:15 »
sv2204, найти все процессы по имени и убить все, кроме последнего. Скриптом.
http://pingvinus.ru/note/ps-kill-killall


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

Оффлайн spk-ubuntu

  • Активист
  • *
  • Сообщений: 502
    • Просмотр профиля
Re: Остановка процесса не зная PID в Ubuntu
« Ответ #3 : 28 Ноября 2015, 00:55:50 »
читайте вопрос, это должно быть прописано изначально в cron, без вмешательства и поиска, тоесть должно все делатся автоматически
Вам это и предложили. Другой вопрос - как понять кто есть последний? У кого pid больше? Скорее всего, это так и будет, но в общем случае это не гарантировано.
Если "команда 1" вызывается с уникальным набором параметров, то теоретически можно поискать её pid через:
ps aux | grep "команда 1".
Но в идеале, конечно, сохранить pid после запуска "команда 1" в файл и затем уже убивать процесс по этому сохраненному pid-у.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28466
    • Просмотр профиля
Re: Остановка процесса не зная PID в Ubuntu
« Ответ #4 : 28 Ноября 2015, 01:02:28 »
Не надо тупить.
Если вам надо убить процесс, который вы сами и запустили, сделайте так, чтобы его pid был известен.
Все инструменты для этого у вас есть.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн sv2204

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Остановка процесса не зная PID в Ubuntu
« Ответ #5 : 28 Ноября 2015, 01:12:51 »
Не надо тупить.
Если вам надо убить процесс, который вы сами и запустили, сделайте так, чтобы его pid был известен.
Все инструменты для этого у вас есть.
Подскажите пожалуйста как это сделать? какие инструменты нужны для этого, я не знаю этого, поэтому и спрашиваю здесь

Оффлайн spk-ubuntu

  • Активист
  • *
  • Сообщений: 502
    • Просмотр профиля
Re: Остановка процесса не зная PID в Ubuntu
« Ответ #6 : 28 Ноября 2015, 01:17:40 »
Код: (bash) [Выделить]
#!/bin/bash
pidfile=/tmp/firefox_bla_bla_bla.pid
firefox &
echo $! > $pidfile
sleep 10
kill $(cat $pidfile)

Оффлайн sv2204

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Остановка процесса не зная PID в Ubuntu
« Ответ #7 : 28 Ноября 2015, 02:04:14 »
Всем спасибо, решил проблему запуском этих процессов от разных юзеров, тогда команда killall ffmpeg убивает процесс только этого юзера, а остальные работают дальше

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28466
    • Просмотр профиля
Re: Остановка процесса не зная PID в Ubuntu
« Ответ #8 : 28 Ноября 2015, 15:26:41 »
Не надо тупить.
Если вам надо убить процесс, который вы сами и запустили, сделайте так, чтобы его pid был известен.
Все инструменты для этого у вас есть.
Подскажите пожалуйста как это сделать? какие инструменты нужны для этого, я не знаю этого, поэтому и спрашиваю здесь
Пишется скрипт, запускающий нужную программу в фоне. Когда программа запускается в фоне, переменная ! содержит её PID. Сохраняете PID, потом по нему убиваете процесс.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.035 секунд. Запросов: 25.