나는 다음과 같은 명령을 포함하는 스크립트를 작성했습니다.
gsettings ...
nohup nm-applet &
sudo 없이(일반 사용자로) 스크립트를 실행할 때 두 명령 모두 피드백을 표시합니다.
sudo를 사용하여 스크립트를 시작하면 스크립트가 성공적으로 실행되지만 명령에 피드백이 표시되지 않습니다.
whoami
일반 사용자가 표시되었음에도 불구하고 이러한 명령을 사용하여 sudo를 통해 스크립트를 실행하는 것은 작동하지 않습니다. 예:
#!/bin/bash
exitfn() {
#try1
nohup nm-applet &
#try2
sudo -i -u normaluser bash <<EOF
whoami
nohup nm-applet &
EOF
#try3
su - normaluser -c "whoami && nohup nm-applet &"
}
trap "exitfn" INT
sudo killall nm-applet
sleep 3600
trap SIGINT
결국 스크립트 부분을 일반 사용자 부분과 sudo가 필요한 부분으로 나누기로 선택했는데 왜 이런 일이 일어나는지 아직도 궁금합니다. sudo를 사용하는 스크립트 내에서 이 두 명령을 실행하는 방법이 있습니까?
고쳐 쓰다
설정:
gsettings --schemadir
내가 설치한 확장은 루트가 아닌 홈 디렉토리에만 있었기 때문에 이를 추가해야 했습니다 .
sudo -E
@meuh가 제안한 대로 추가됨
nm-작은 프로그램:
을 사용하면 sudo
실행되지만 데스크탑 알림 표시줄에는 표시되지 않습니다. 없으면 sudo
도망간다그리고바탕 화면 알림 표시줄에 표시됩니다.