ogregor
@ogregor
арендатор vpn сервера debian

Можно при перехватить вызов команды завершения программы в терминале?

Есть скрипт который запускает несколько программ и в конечном итоге остается доступ через нажатие комбинации ctrl+c только для последней запущенной программы.
к примеру `cd hapi && npm run hapi & cd ../ & node scripts/start.js`
запускается фронтенд сервер и бекенд сервер.
- Когда делается завершение программы, то соответственно завершается только фронтенд сервер
- можно ли каким либо образом перехватить нажатие ctrl+c или ctrl+z и путем вызова соответствующих команд завершить работу и бекенд программы?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
@dronmaxman
VoIP Administrator
Жесть. Переделай на systemd.

vim /etc/systemd/system/backend.service

[Service]
ExecStart=/usr/bin/node /opt/backend/server.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=backend
User=root
Group=root
WorkingDirectory=/opt/backend

[Install]
WantedBy=multi-user.target

sudo systemctl daemon-reload
sudo systemctl start backend.service
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Radjah
@Radjah
Написать два юнита для systemd и не заниматься костылингом, например.

Можно даже через systemd-run запускать, если на раз попробовать.
Ответ написан
@sash999
просто админ из деревни
Теоретически можно через перехват сигналов с помощью trap. Но правильнее, как уже сказали, сделать всё с systemd.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
EXELO Омск
от 50 000 до 70 000 руб.
INCOMA Москва
До 100 000 руб.
o.vision Санкт-Петербург
от 170 000 до 220 000 руб.