터미널에서 실행되고 Raspberry Pi "화면" 출력에서 자동으로 시작되는 스크립트를 생성하려고 합니다. 여기서 문제는 sudo
스크립트 내에서 권한이 필요하지만 프로세스가 실행되면 비밀번호 요청이 표시되지 않는다는 것입니다.
스크립트의 예는 다음과 같습니다(작동하게 되면 스크립트를 다른 목적으로 조정할 수 있습니다).
1) 폴더를 입력하세요:
cd /etc/openvpn
2) 서비스를 실행합니다(Sudo 권한이 필요함).
sudo openvpn ./pia_netherlands.conf
코드를 수동으로 입력하면 스크립트가 실행되므로 문제가 없습니다. "화면" 내에서 수행하는 데 문제가 있을 뿐입니다.
인터넷 검색을 사용하여 다음 스크립트를 설정했습니다.
#!/bin/sh
if [ -z "$STY" ]; then exec screen -dm -S pia /bin/bash "$0"; fi
cd /etc/openvpn
sudo openvpn ./pia_netherlands.conf
스크립트는 "pia"라는 화면이 있는지 확인해야 하며, 그렇지 않은 경우 pia라는 화면을 생성하고 먼저 폴더로 이동한 다음 openvpn 파일을 실행하여 스크립트를 실행합니다.
좀 더 간단한 두 번째 스크립트를 시도했지만 그것도 작동하지 않았습니다.
sudo bash screen -S pia
cd /etc/openvpn
openvpn ./pia_netherlands.conf
스크립트는 "pia"라는 bash 화면을 열고 폴더로 이동하여 openvpn 파일을 실행합니다.
두 방법 모두 작동하지 않으며 작동 방법을 찾는 데 정말 어려움을 겪고 있습니다. 누구든지 나를 도와줄 수 있나요?
Raspberry Pi 포럼에도 문의했지만 아무도 응답하지 않았습니다. 이는 Raspberry Pi 문제보다 Linux 문제에 더 가깝기 때문인 것 같습니다.
답변1
내가 읽으면매뉴얼 페이지맞습니다. openvpn
스위치를 사용하여 데몬으로 작동하는 것이 가능합니다(즉, 배경 자체로 이동) --daemon
.
따라서 특별한 요구사항이 없다면 screen
다음을 선택할 수 있습니다.
sudo openvpn --daemon --config /etc/openvpn/pia_netherlands.conf
다른 대안:
screen
스크립트 실행을 시작 하고 비밀번호를 입력한 후screen
.screen
sudo
그냥 실행하는 대신 전체를 실행하시겠습니까openvpn
? 즉sudo screen -S pia openvpn /etc/openvpn/pia_netherlands.conf
/etc/sudoers
NOPASSWD:
매번 비밀번호를 입력하지 않고도 특정 명령을 실행할 수 있도록 플래그가 있는 스크립트를 추가하세요 .