sudo로 시작된 스크립트에서 일반 사용자로 gsettings 또는 "nohup nm-applet &"를 어떻게 실행합니까?

sudo로 시작된 스크립트에서 일반 사용자로 gsettings 또는 "nohup nm-applet &"를 어떻게 실행합니까?

나는 다음과 같은 명령을 포함하는 스크립트를 작성했습니다.

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도망간다그리고바탕 화면 알림 표시줄에 표시됩니다.

관련 정보