Повернитесь вручную, программа начинает автоматически программировать, запускаются на начальной загрузке

Я установил osrm на своем сервере в home/myname/osrm если я вручную запускаю процесс из-за dir с osrm-routed data/map.osrm это хорошо работает, но к сожалению на переднем плане и после перезагрузки, если должны запустить его вручную снова. Я пытался установить его как услуга

[Unit]
Description = starts up the osrm service
After = network.target
[Service]
WorkingDirectory=/home/christian/osrm/
User=christian
ExecStart = /usr/local/bin/osrm-routed   osrm-routed data/map.osrm
[Install]
WantedBy = multi-user.target

Но когда я запускаю сервис, я всегда получаю сообщения об ошибках как это

 [/etc/systemd/system/osrmstart.service:7] Executable path specifies a directory, ignoring: /usr/local/bin/osrm-routed/ osrm-routed data/map.osrm
Sep 01 14:03:46 ubuntu systemd[1]: osrmstart.service: Service lacks both ExecStart= and ExecStop= setting. Refusing.

Что, я делаю неправильно. Я очень плохо знаком с Ubuntu.


Спасибо за ответ на мой вопрос:

когда я работаю:

file /usr/local/bin/osrm-routed

я получаю следующее:

/usr/local/bin/osrm-routed: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=767f57fe712d25f03f1b2d18fd541d0253cd86d4, not stripped

я изменил свой osrmstart.service на:

[Unit]
Description = starts up the osrm service
After = network.target
[Service]
Type=simple
WorkingDirectory=/home/christian/osrm/
User=christian
ExecStart = /usr/local/bin/osrm-routed   osrm-routed data/map.osrm
[Install]
WantedBy = multi-user.target

Теперь, если я сначала отключаю, затем включаю osrmstart.service и затем запустите сервис с sudo systemctl start osrmstart.service: Я не получаю ошибки - но сервис не запускается и не доступен.

Вручную я могу запустить процесс, когда я перешел к своему домашнему dir ~/home/osrm и затем ввод osrm-routed data/map.osrm и Войдите, это запускает процесс - процесс является сервером, ожидающим на localhost:port5000 запросов как

http://192.168.1.200:5000/route/v1/driving/11.57787,48.13877;11.52045,48.13969?steps=true&alternatives=true&
geometries=geojson

и возвращает путь от цели до места назначения, но вручную процесс работает в forground.

Мне нужен сервис, работающий в фоне, также при перезагрузке системы. Возможно, ее единственное ошибка типа - но я попробовал столько видов печати. Возможно, мой ответ помогает немного больше для помощи мне.Заранее спасибо.

Христианин

1
задан 1 September 2017 в 19:02

1 ответ

Я вижу несколько проблем здесь:

  1. Синтаксические ошибки Ваш код должен быть похожим на это:

    [Unit]
    Description=starts up the osrm service
    After=network.target
    
    [Service]
    Type=daemon
    WorkingDirectory=/home/christian/osrm/
    User=christian
    ExecStart=/usr/local/bin/osrm-routed data/map.osrm
    
    [Install]
    WantedBy=multi-user.target
    
  2. /usr/local/bin/osrm-routed, кажется, каталог не executable файл.

    • Выполнение file /usr/local/bin/osrm-routed для определения наверняка, но я думаю, что можно знать это путем простого изменения в него.
  3. Примечание: не знайте, какой программируют Вашу попытку выполнить так Type, опция могла быть Type=[simple|daemon|oneshot|forking|notify|idle]

[еще 1117] информация:

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html

https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files

2
ответ дан 7 December 2019 в 13:30

Другие вопросы по тегам:

Похожие вопросы: