답변1
매개변수는 일반적으로 서비스 파일의 행에 존재합니다 ExecStart=
.
# /lib/systemd/system/myservice.service
[Unit]
ExecStart=/bin/myprogram arg1 arg2
제공한 링크 중 하나를 사용하세요.템플릿화된매개변수 중 하나를 정의하는 서비스
# /lib/systemd/system/[email protected]
[Unit]
ExecStart=/bin/myprogram %i
[Install]
WantedBy=multi-user.target
이렇게 하면 서로 다른 매개변수를 사용하여 동일한 서비스의 여러 인스턴스를 활성화할 수 있습니다.
systemctl enable --now [email protected]
systemctl enable --now [email protected]
그러면 서로 다른 매개변수를 사용하여 두 개의 인스턴스가 실행됩니다: /bin/myprogram arg1
및 /bin/myprogram/arg2
.
GUI를 열지 않고도 서비스를 시작할 수 있나요?
이제 구체적으로 알 수 있습니다. 도커를 관리하는 GUI를 시작하는 서비스가 있는 것 같습니다. 이 경우 내 의심은 systemd
잘못된 곳에 있습니다. 컨테이너를 실행하지 않을 docker-desktop.service
수도 있지만 실행 중인 서비스와 상호 작용할 수 있는 인터페이스만 제공하면 됩니다. 서비스는 systemd
개입 없이 모든 컨테이너 인스턴스를 하위 프로세스로 관리할 수 있습니다.
한번 보세요(추측일 뿐입니다)
systemctl list-units *docker*
컨테이너 관리를 담당하는 실제 서비스가 드러날 것이라고 확신합니다.
Docker 컨테이너에는 일반적으로 이러한 실행기가 필요하지 않으며 일반적으로 systemd를 통해 관리할 수 있지만 .service
각 컨테이너마다 자체 매개변수 세트가 있는 파일이 있어야 합니다.