나는 종종 다음과 같은 문제에 직면합니다. 명령이 내 사용자 셸에서 실행되는지 또는 Systemd 서비스의 일부로 실행되는지에 따라 명령이 다른 결과를 생성합니다(예: ExecStart
.
가능한 한 가깝게 특정 Systemd 서비스를 모방하는 셸에서 명령을 실행할 수 있는 방법이 있습니까 dhcpcd.service
? 동일한 기능, 환경 변수 및 사용 가능한 리소스를 갖는 것이 시작입니다.
ip link
현재 문제에서는 내 문제 를 재현하는 데 문제가 있습니다 . 하지만 ExectStart
이는 dhcpcd.service
시스템 서비스를 디버깅하는 데 매우 유용합니다.
답변1
당신은 그것을 사용할 수 있습니다 systemd-run
:
# systemd-run ip link
Running as unit: run-r2723175b10a543f38faddda99baa8ca3.service
# journalctl -u run-r2723175b10a543f38faddda99baa8ca3.service
-- Logs begin at Fri 2020-09-11 23:45:32 CEST, end at Fri 2020-09-18 15:33:51 CEST. --
Sep 18 15:33:51 w systemd[1]: Started /usr/bin/ip link.
Sep 18 15:33:51 w ip[3904]: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
...
-E
서비스 환경을 "모방"하려면 및 기타 플래그를 사용하세요 .