content라는 파일이 있습니다 ~/.config/systemd/user/ssh-agent.service
.
[Unit]
Description=SSH key agent
[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
Environment=SYSTEMD_LOG_LEVEL=debug
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
[Install]
WantedBy=default.target
서비스를 시작하고 ssh-agent를 사용할 수 있지만 다음과 같이 서비스를 중지하면 systemctl --user stop ssh-agent
서비스가 실패합니다.
Dec 08 17:13:11 box systemd[571]: Stopping SSH key agent...
Dec 08 17:13:11 box systemd[571]: ssh-agent.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Dec 08 17:13:11 box systemd[571]: ssh-agent.service: Failed with result 'exit-code'.
Dec 08 17:13:11 box systemd[571]: Stopped SSH key agent.
장치가 "실패" 상태로 표시되는데 이유를 알 수 없습니다. 설정을 사용하면 KillMode=none
오류가 사라지지만 물론 에이전트가 종료되지는 않습니다. 실패의 원인이 무엇인지 아시나요? 또한 ssh-agent 호출 내에서 설정 및 제거를 시도했습니다 Type=forking
.-D
답변1
ssh-agent
일반적으로 종료 코드 2로 종료됩니다.여기. 당신은 할 수ExecStart 문 앞에 다음을 붙입니다.-
0이 아닌 종료 코드는 무시됩니다.
ExecStart=-/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
답변2
여기서 문제는 실패가 아니라 systemctl --user status <svc>
출력입니다.
status=2/INVALIDARGUMENT
이 오류는 $SSH_AUTH_SOCK 변수에서 발생하므로 바인딩 주소에 문제가 있습니다. 삭제하고 기본 주소를 사용해 보세요 -a ${SSH_AUTH_SOCK}
.
실패한 상태는 여전히 존재합니다. 이를 제거하려면 반환 코드로 인해 중지하고 시작하는 전체 장치 솔루션을 구현해야 합니다.