![추가 읽기](https://linux55.com/image/102059/%EC%B6%94%EA%B0%80%20%EC%9D%BD%EA%B8%B0.png)
사용자가 로그인할 때 실행되는 서비스를 만들려고 합니다.
루트가 아닌 사용자로서 다음 파일을 만들었습니다.
> cat ~/.local/share/systemd/user/voodoo.service
[Unit]
Description=User service test
[Service]
RemainAfterExit=yes
Type=simple
ExecStart=/bin/bash -c "touch /tmp/ok123"
[Install]
WantedBy=default.target
그러나 systemctl은 이를 인식하지 못합니다.
> systemctl --user restart voodoo.service
Failed to connect to bus: No such file or directory
어떤 아이디어가 있나요?
답변1
나는 당신이 먼저 enable
봉사해야 한다고 생각합니다:
systemctl --user enable voodoo.service
Created symlink /home/andreatsh/.config/systemd/user/default.target.wants/voodoo.service → /home/andreatsh/.local/share/systemd/user/voodoo.service
보시다시피 이는 해당 폴더에 심볼릭 링크를 생성합니다. 그런 다음 다음을 실행합니다.
systemctl --user restart voodoo.service
그리고 서비스는 매우 좋습니다.
답변2
실제로 두 개입니다. 이것이 가능성이 더 높은 것입니다.
Ubuntu 15는 시스템 전체 서비스 관리를 위해 systemd로 전환합니다. 그러나 사용자별 서비스 관리는 여전히 신생 영역이며 16.04에서도 마찬가지입니다.
따라서 당연히 대화 systemctl
할 각 사용자의 인스턴스를 찾을 수 없습니다 . 그랬 systemd
으니 참고하세요systemctl
아니요서비스 단위 파일을 인식하지 못한다고 합니다. 각 사용자 인스턴스와 통신하는 "버스"에 연결할 수 없다고 말합니다 systemd
.