원격으로 명령을 시작한 다음 연결을 닫습니다.

원격으로 명령을 시작한 다음 연결을 닫습니다.

여러 서버에서 원격으로 정리 명령을 실행하려고 합니다. 이는 장치이기 때문입니다. 로컬에서 cron 작업과 같은 항목을 변경하면 지원이 중단됩니다.

나는 이것을하려고 노력하고 있습니다 :

ssh [email protected] "nohup fstrim /data &"

명령은 실행되지만 문제는 nohup 등에도 불구하고 보안 셸이 열려 있다는 것입니다. ssh가 명령을 삭제하고 즉시 종료하도록 강제할 수 있나요?

방금 Google을 통해 비슷한 요청을 찾았습니다. 거기서 해결됨

screen -d -m ./script

아쉽게도 기기에 화면이 없습니다.

답변1

screen원격 서버에 설치한 경우 fstrim독립 실행형 screen세션에서 명령을 실행하는 이 방법을 시도해 보십시오. 현재로서는 ssh즉각적인 종료처럼 보입니다.

ssh [email protected] screen -S fstrim -md fstrim /data

다음 명령을 사용하여 세션에 다시 연결할 수 있습니다.

ssh -tt [email protected]. screen -r fstrim

그리고 다시 연결 끊기Ctrl a(Ctrl) d

초기 명령이 작동하지 않는 이유는 다음 nohup을 볼 수 있기 때문입니다.표준 출력터미널이 아니며 쓰기를 위해 설명자를 열어 둡니다. (사용해본 경우 ssh -tt원격측에 의사장치가 생성되고 nohup터미널이 표시됩니다.) 리디렉션을 통해표준 출력특히 예상대로 프로세스가 백그라운드에서 실행되도록 할 수 있습니다.

ssh -fn [email protected] "nohup fstrim /data >nohup.out &"

이제 이것에 대한 잔혹한 세부 사항을 읽으면 man nohup무엇을 찾고 있는지 알 수 있습니다.

답변2

괜찮아요. 해결책을 찾았다고 생각합니다.

ssh [email protected] "nohup fstrim /data > /dev/null &"

답변3

atd장치에서 실행되고 있습니까? 그렇다면 at즉시 작업 일정을 계획할 수 있습니다.

ssh [email protected] "echo 'fstrim /data' | at now"

원격 세션은 작업 예약만 수행하므로 즉시 종료됩니다. 데몬은 atd이를 실제로 실행하는 역할을 담당합니다.

관련 정보