ShockWave2048
@ShockWave2048
imposter

Как на linux (centos) осуществить запуск/перезапуск процесса?

Добрый день.
- Есть простой сокет сервер написанный на C#.
- Запускается через Mono среду + IML/.NET сборка (>mono server.exe)
- через админку (webmin) хочу сделать две кнопки, "RUN" / "STOP" (или одну "RESTART")

Запуск понятно, но как найти ID процесса чтобы остановить, (например в sh script) не понимаю.

Как быстро такое провернуть?
  • Вопрос задан
  • 1005 просмотров
Решения вопроса 1
Есть утилита pidof для Linux, возвращающая id процесса по имени.
Также одной из распространённых практик является сохранение id процесса при его запуске в постоянном файле /var/run/myprogram.pid
Если Centos 7, то процессами управляет SystemD, можно написать для него свой Unit.
Пример обёртки для запуска процесса с сохранением id в файле:
#!/bin/bash
/path/to/mono /path/to/server.exe &
echo $! >/var/run/mono_server.pid
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
CityCat4
@CityCat4
Если я чешу в затылке - не беда!
# ps axww | grep myprogram | grep -v grep | awk '{print $1}'


Зачем grep -v grep? Чтобы в отбор не попадала сама команда 'grep myprogram'
Ответ написан
shai_hulud
@shai_hulud
Можно зарегать свой сервер как сервис положив скрипт в init.d, и с помощью daemon из libslack стартить/стопить плюсом будет еще авто-рестарт при падении.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы