У меня есть приложение узла, работающее на моем сервере хостинга Linux.
Иногда приложение дает сбой, и мне нужно его перезапустить, поэтому я вхожу в систему и набираю следующие команды:
pkill node
cd public_html/n49900_dpndev
node server.js &
И приложение снова запускается.
Теперь я хотел бы поместить это в сценарий, поэтому мне просто нужно запустить сценарий (или, например, выполнить его из сценария PHP).
Я создал файл "startnode":
#!/bin/bash
pkill node
cd public_html/n49900_dpndev
node server.js &
Я изменил разрешения с помощью chmod 755 startnode
.
Но когда я выполняю это с ./startnode
он отвечает:
Прекращено
Что мне нужно сделать, чтобы команды, которые я набираю вручную, также работали в сценарии bash?
Имя вашего скрипта содержит "узел" в имени и pkill node
наверное убивает это.
С помощью pkill -x node
убивать только процессы, чье имя в точности совпадает с "узлом", может вам больше по душе. Или даже pkill -f -x "node server.js"
чтобы убить процесс с точной полной командной строкой.
pkill
убивает каждый процесс, запущенный программой с именем, содержащим слово node
даже ты сценарий
Переименуйте ваш скрипт на любое имя, не содержащее слова node