내 서비스 파일의 내용은 다음과 같습니다 arkos-redis.service
.
GNU nano 2.4.2 File: /usr/lib/systemd/user/arkos-redis.service
[Unit]
Description=Advanced key-value store
[Service]
ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf
ExecStop=/usr/bin/redis-cli shutdown
[Install]
WantedBy=default.target
하지만 시작하면 다음과 같은 상태가 나타납니다.
[vagrant@arkos-vagrant etc]$ systemctl --user status arkos-redis.service
��arkos-redis.service - Advanced key-value store
Loaded: loaded (/usr/lib/systemd/user/arkos-redis.service; enabled; vendor preset: enabled)
Active: inactive (dead)
답변1
서비스 파일은 에 있으므로 사용자 서비스로 간주되며 /usr/lib/systemd/user
자체 인스턴스에 의해 시작 systemd
(다음으로 실행 )됩니다 systemd --user
. 이는 무엇보다도 귀하의 사용자(대신) root
와 로그인한 모든 사용자에 대해 프로세스가 시작된다는 것을 의미합니다. 의 구성 파일에 대한 참조를 기반으로 이 프로세스의 인스턴스는 주어진 시간에 하나만 실행되어야 하며 이 프로세스는 다른 시스템 계정으로 실행 /etc
되어야 한다고 추측합니다 . root
이 프로세스가 시작되어야 하는 경우 root
이 파일을 /usr/lib/systemd/system
(또는 /etc/systemd/system
자신의 서비스 파일이므로 더 나은)로 이동하고 이 답변의 나머지 부분을 무시하십시오.
자신의 사용자로 서비스 파일을 시작해야 하는 경우 사용자 모드에서는 다음 대상만 사용할 수 있습니다.
When systemd runs as a user instance, the following special units are available, which have
similar definitions as their system counterparts: default.target, shutdown.target,
sockets.target, timers.target, paths.target, bluetooth.target, printer.target,
smartcard.target, sound.target.
multi-user.target
사용할 수 없으므로 서비스 network.target
가 자동으로 시작되지 않습니다. 시작하려면 multi-user.target
으로 변경 default.target
한 다음 삭제하세요 After=network.target
. 그런 다음 systemctl --user enable arkos-redis.service
.