статус systemctl показывает неактивные мертвые
Я пытаюсь написать свой собственный (простой) systemd-сервис, который делает что-то простое.(Например, запись чисел от 1 до 10 в файл, используя сценарий оболочки). Мой файл сервиса выглядит следующим образом.
[Unit]
Description=NandaGopal
Documentation=https://google.com
After=multi-user.target
[Service]
Type=forking
RemainAfterExit=yes
ExecStart=/usr/bin/hello.sh &
[Install]
RequiredBy = multi-user.target
Это мой скрипт.
#!/usr/bin/env bash
source /etc/profile
a=0
while [ $a -lt 10 ]
do
echo $a >> /var/log//t.txt
a=`expr $a + 1`
done
по какой-то причине служба не появляется, и systemctl показывает следующий вывод.
root@TARGET:~ >systemctl status -l hello
* hello.service - NandaGopal
Loaded: loaded (/usr/lib/systemd/system/hello.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: https://google.com
пытался выяснить, что пошло не так за последние 2 дня. Кто-нибудь может мне помочь? здесь?
С уважением, nandanator
2 ответов
- установлен
Type=Forking
, но ваш сервис не работает. Попробуй!--1--> - у вас есть "&" ваш
ExecStart
строка, которая не нужна. - сервис
disabled
, что означает, что это не былоenabled
для начала при загрузке. Вы должны бежатьsystemctl enable hello
чтобы установить его для запуска при загрузке.
вы можете проверить man systemd.directives
, чтобы найти индекс всех указаний, которые вы можете использовать в своем unit
файлы.
несколько моментов:
если вы используете
Type=forking
, рекомендуется указать PidFile.в вашем случае,
Type=simple
, и ExecStart без&
будет работать.использовать
systemctl start service-name
для запуска службызатем использовать
systemctl status service-name
чтобы проверить его состояние. статус будет неактивным / мертвым, если служба не запущена.