Mac 컴퓨터를 원격으로 종료하는 iPhone 앱이 있습니다. 이 응용 프로그램을 사용하여 Ubuntu 컴퓨터를 종료하고 싶습니다.
닫으려고 하면 응용 프로그램에서 다음 메시지가 나타납니다.
Ubuntu가 종료되면:
"연결 오류"
우분투가 시작되면:
"zsh: 1: 명령을 찾을 수 없습니다: osascript"
이로 인해 애플리케이션이 실제로 zsh에 액세스할 수 있다고 생각됩니다. 그렇다면 다음과 같이 "osascript"에 대한 별칭을 만들 수 없습니까?
alias osascript="shutdown -h now"
문제는 Iphone 앱에서 여전히 메시지를 받는다는 것입니다.
"zsh: 1: 명령을 찾을 수 없습니다: osascript"
어떤 아이디어가 있나요? 내 생각엔 애플리케이션이 SSH를 사용하고 있으며 Ubuntu의 별칭과 동일한 사용자 이름을 사용하는 것 같습니다.
실패한 검색의 경우: ".zsh_history"에 원격 액세스 명령이 표시되어야 합니까? 여기에는 애플리케이션에 대한 명령이 표시되지 않습니다.
답변1
Linux를 지원하지 않는 응용 프로그램을 사용하지 마십시오. "RMsrv Reboot"는 Linux를 부팅하고 종료하는 데 적합합니다.
답변2
ssh
오류 메시지는 최소한 ssh someuser@somehost somecommand
다음을 통해 명령을 직접 실행하려는 실패한 시도와 일치합니다. zsh
애플리케이션이 시작되는 방식과 별칭을 넣은 구성 파일에 따라 로드되지 않을 수도 있습니다. 또한 기록 파일은 대화형 세션에 의해서만 기록됩니다("Good Thing™"입니다. 모든 zsh 스크립트가 실행될 때 해당 내용을 기록 파일에 덤프했다고 상상해 보세요).
osascript
명령줄 AppleScript 해석기입니다(감사합니다Forquar팁). 따라서 우분투에서는 작동하지 않습니다. 그러나 응용 프로그램은 명령줄 인수를 통해 일부 작은 스크립트를 실행하여 Mac을 종료할 가능성이 높습니다.
컴퓨터를 종료하는 것만 하고 싶은 경우
/usr/bin/osascript
Ubuntu 컴퓨터에 일부 스크립트를 배치하여 컴퓨터를 종료할 수 있습니다. 예를 들어:#!/bin/sh sudo /sbin/shutdown -h now
이는 최소한 비밀번호 없는 액세스를 가정합니다 .
shutdown -h now
파일이나 그 안에 포함된 파일에 다음 줄을 추가하면/etc/sudoers
됩니다 .YOURUSERNAME ALL = NOPASSWD: /sbin/shutdown -h now
다른 명령(종료, 다시 시작 등)에 반응하려면 애플리케이션에서 사용하는 명령줄 매개변수를 검색해 보세요. 이렇게 하려면 먼저 Ubuntu 컴퓨터에 다음 스크립트를 이름으로 배치합니다
osascript
(/usr/bin
나열된 모든 경로는PATH
이론적으로 이 작업을 수행해야 합니다. 불행하게도ssh
자체 설정이 있는 경우가 많습니다. 아래를 참조하세요.):PATH
#!/bin/sh logfile='/path/to/logfile' echo "$@" >> "$logfile" echo '---->8----' >> "$logfile"
실행 가능하도록 만드는 것을 잊지 마십시오(
chmod 755 /usr/bin/osascript
).이제 애플리케이션이 제공해야 하는 다양한 옵션을 실행하고 매번 로그 파일의 출력을 확인할 수 있습니다(
tail -F /path/to/logfile
도움이 될 수 있음). 이제 각 출력의 차이점을 찾고 그에 따라 반응하는 스크립트를 작성하기만 하면 됩니다.
위에서 언급한 대로, 터미널 세션()에서 얻은 것과 크게 다를 수 있는 ssh
자신만의 설정을 사용할 수 있습니다 . 다행히 중고를 쉽게 회수 할 수 있습니다.PATH
echo $PATH
PATH
ssh
ssh localhost 'echo $PATH'
/usr/local/sbin
또는 거기에 가 있으면 /usr/local/bin
거기에 스크립트를 넣는 것이 좋지만 나열된 디렉토리 중 어느 것이든 가능합니다.