bash скрипт для автоматического запуска при загрузке, создании экрана, выполнении команды и отключении - PullRequest
0 голосов
/ 21 октября 2019

Я использую Centos 7 и при загрузке я хотел бы:

  • Сделать экран
  • Выполнить команду: osrm-routed --algorithm = MLD ~ / osrm-backend / Profiles / australia-latest.osrm
  • Получение данных с экрана (возможно, не нужно, если я могу получить к нему доступ самостоятельно после его запуска в будущем)

Вот кое-чтоЯ думал о, хотя и не правильно и не будет работать

имя файла: mapstart.sh Содержание файла:

#!/bin/bash
/usr/bin/screen -dmS mapapi osrm-routed --algorithm=MLD ~/osrm-backend/profiles/australia-latest.osrm

С вашей помощью сценария. Я не уверен, что лучший способ запустить его при загрузке с centos 7.

Ценю вашу помощь и вклад.

1 Ответ

0 голосов
/ 21 октября 2019

Для тех, кто хотел бы знать. Проблема была с OSRM и centos. Я смог запустить его, используя полные пути всего и следующего в crontab -e

Чтобы получить полный путь к osrm-backend, я выполнил команду:

which osrm-routed

Он вернул результат:

/usr/local/bin/osrm-routed

Это позволило мне добавить полный путь к команде, которую я пытался запустить из crontab -e, что необходимо. Оттуда он работал, выполнив следующую команду в crontab -e

@reboot /usr/bin/screen -dm -S pistartup /usr/local/bin/osrm-routed --algorithm=MLD ~/osrm-backend/profiles/australia-latest.osrm

, разбив все вышеперечисленное:

запускает команду только при перезагрузке:

@reboot

полный путь к экранной команде:

/usr/bin/screen

создать экран с именем поршня и отсоединить:

-dm -S pistartup 

моя конкретная команда, которую я хотел выполнить внутри экрана:

/usr/local/bin/osrm-routed --algorithm=MLD ~/osrm-backend/profiles/australia-latest.osrm

Теперь при перезагрузке машины. он создал экран и запустил мою команду. Чтобы возобновить экран вручную Если бы я захотел, я мог бы выполнить команду:

screen -r pistartup
...