статус 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чтобы проверить его состояние. статус будет неактивным / мертвым, если служба не запущена.