Rpi3b만 사용하여 Steamlink를 TV에 연결하고 싶고 부팅 시 실행되도록 Steamlink를 설정하는 방법도 보여주는 튜토리얼을 찾았습니다(sudo nano .bash_aliases
및 insert steamlink
).
Steamlink를 닫을 때 Raspbian을 자동으로 종료하고 싶습니다(키보드/마우스 없이 안전하게 플러그를 뽑을 수 있도록). 나는 이 대답을 찾았습니다:
sudo -s
someprogram && shutdown now
.bash_aliases
그러면 을(를) 편집 할 수 있다는 의미입니까 steamlink && shutdown now
? 간단한 명령에만 해당되나요?
답변1
당신이 제안한대로 시도해 볼 가치가 있습니다. 예상대로 작동하지 않을 경우를 대비한 몇 가지 팁은 다음과 같습니다.
.bash_aliases 사용
일반적으로 .bash_aliases
파일은 자동으로 실행되어서는 안 됩니다. "깨끗한" 방법은 시스템 장치를 추가하는 것이지만, 당면한 문제에 비해 이것이 너무 복잡할 수 있다는 것을 알고 있습니다.
스트림링크를 "끄기"라고 하셨습니다. 스트림링크를 자동으로 시작하는 더 나은 방법을 제안하기 위해 스트림링크와의 상호작용(예: 끄기)이 정확히 어떻게 작동하는지가 흥미로울 수 있습니다.
을 위한 &&
쉘 스크립트 구문은 &&
첫 번째 명령이 성공적으로 종료되면 두 번째 명령을 실행함을 의미합니다. Streamlink를 중지하기 위해 CTRL-C와 같은 일반적인 단축키를 사용하면 실제로 오류 코드와 함께 종료될 수 있습니다. 이 경우 표기법이 ;
더 나을 수 있습니다(닫는 것은 반환 코드와 아무 관련이 없습니다).
someprogram; shutdown now
액세스를 끄세요
고려해야 할 또 다른 주의 사항이 있습니다. UNIX 시스템에서 종료는 일반적으로 시스템 관리자만 수행할 수 있는 작업으로 간주됩니다. 최근 Linux 시스템에는 로그인한 다른 사용자가 없더라도 일반 사용자로 종료가 작동할 수 있도록 하는 다양한 메커니즘이 있습니다. 자동 시작에 추가하기 전에 shutdown now
명령이 예상대로 작동하는지 확인하는 것이 좋습니다. 작동하지 않으면 사용자가 종료를 실행할 수 있도록 sudo를 설정해야 할 수도 있습니다.
대체 솔루션
마지막으로, 이 질문에서 언급했듯이 실행하려는 프로그램 바로 뒤에 종료를 추가하는 것이 일반적으로 잘 작동합니다. 애플리케이션이 더 복잡한 경우(예: 다른 프로세스를 시작하고 모든 프로세스가 종료되기 전에 종료하는 경우) 프로세스의 존재를 모니터링하고 존재하지 않을 때 종료를 트리거하는 별도의 스크립트를 갖는 것이 흥미로울 수 있습니다.