서비스에서 원격 호스트에 대한 명령을 실행하는 방법은 무엇입니까?

서비스에서 원격 호스트에 대한 명령을 실행하는 방법은 무엇입니까?

"/etc/init.d"에 서비스가 있습니다. 서비스 내에서 ssh를 사용자로 사용하여 원격 시스템에서 명령을 실행합니다. 현재 나는 다음을 통해 이 작업을 수행합니다.

sudo -u user bash -c "ssh [email protected] 'source ~/.envrc ; (cd /catalog; ./bin/catalog start &)'"

이는 서비스의 시작 명령이며 서비스 이름은 Catalog입니다.

이렇게 하면 sudo service catatlog start명령이 성공적으로 실행됩니다. 즉, [email protected]대상 컴퓨터에 사용자로 올바르게 SSH를 연결 user하지만 서비스가 시작되지 않습니다.

누구든지 이것을 성공적으로 실행하기 위해 조정하는 방법을 말해 줄 수 있습니까?

답변1

그래서 nohup다음 명령을 사용하여 문제를 해결했습니다.

sudo -iu user ssh [email protected] "nohup bash -c 'source ~/.envrc ; (cd /catalog; ./bin/catalog start &)'"

관련 정보