Служба модуля загружена неправильно: ошибка формата Exec. на ubuntu18.04 создание службы .net

Я пытаюсь создать службу для запуска приложением .net в Ubuntu 18.04.

cd /lib/systemd/system/YellowPages.service

[Unit]
Description = Yellow pages .NET service

[Service]
Type=forking
WorkingDirectory=/home/yp_app
ExecStart=dotnet /home/yp_app/YellowPages.dll

[Install]
WantedBy=multi-user.target
~

У меня есть приложение в /home/yp_app.

когда я запускаю: systemd start YellowPages.service, я получаю аргументы Excess.

поэтому я попробовал: systemctl start YellowPages.service я получаю

 Failed to start YellowPages.service: Unit YellowPages.service is not loaded properly: Exec format error.
See system logs and 'systemctl status YellowPages.service' for details.

Когда я заглядываю в cat /var/log/syslog

я мог видеть

systemd[1]: /lib/systemd/system/YellowPages.service:7: Executable path is not 
absolute: dotnet /home/yp_app/YellowPages.dll

Я новичок в Linux, мне интересно, где я ошибаюсь. Может ли кто-нибудь помочь мне с этим?


person sumanth shetty    schedule 01.07.2020    source источник
comment
@Крис Уильямс   -  person sumanth shetty    schedule 01.07.2020
comment
Пожалуйста, опубликуйте результат этой команды: which dotnet   -  person l'L'l    schedule 02.07.2020


Ответы (1)


Есть пара проблем с вашим демоном:

[Unit]
Description = Yellow pages .NET service

Удалите пробелы вокруг знака равенства:

[Unit]
Description=Yellow pages .NET service

ExecStart нужен абсолютный путь (отсюда и ошибка):

[Service]
Type=forking
WorkingDirectory=/home
ExecStart=/usr/bin/dotnet /home/yp_app/YellowPages.dll

Ваш исполняемый файл dotnet может быть расположен в другом месте, хотя вы можете узнать его абсолютный путь, выполнив:

$ which dotnet

Что бы ни возвращалось, это будет абсолютный путь для использования.

person l'L'l    schedule 02.07.2020
comment
внесли изменения, больше не получая эту ошибку. Но когда я пытаюсь включить службу с помощью: systemctl enable YellowPages.service: Failed to enable unit: Invalid arguments - person sumanth shetty; 02.07.2020
comment
когда я проверяю системные журналы, я вижу: CRON[8868]: (root) CMD (команда -v debian-sa1 › /dev/null && debian-sa1 1 1) - person sumanth shetty; 02.07.2020
comment
@sumanthshetty: покажите команду, которую вы пытаетесь запустить. Это должно быть просто: systemctl start Yellowpages. Второй комментарий с ошибкой cron не имеет отношения к делу. Если это не работает, используйте journalctl -xe сразу после этого и опубликуйте вывод. - person l'L'l; 02.07.2020
comment
@I'L'I я использовал запуск systemctl Yellowpages.service Не удалось запустить YellowPages.service: модуль YellowPages.service загружен неправильно: ошибка формата Exec. Подробности смотрите в системных журналах и в «статусе systemctl YellowPages.service». когда я проверяю системный журнал /lib/systemd/system/YellowPages.service:7: путь к рабочему каталогу «home/yp_app» не является абсолютным. как найти абсолютный путь к папке приложения. я подал в суд на PWD - person sumanth shetty; 02.07.2020
comment
Похоже, вам не хватает / в начале home/ypp.... Когда вы находитесь в рабочем каталоге, попробуйте: pwd, он должен вернуть полный абсолютный путь. - person l'L'l; 03.07.2020