루트 스크립트가 사용자에게 zenity 대화 상자를 표시하도록 합니다.

루트 스크립트가 사용자에게 zenity 대화 상자를 표시하도록 합니다.

나는 지시를 따랐다.여기외부 드라이브를 컴퓨터에 연결할 때마다 자동으로 시작되도록 자동 백업을 설정하세요.

zenity이것은 작동하지만 추가로 사용자에게 두 개의 대화 상자를 표시 하고 싶습니다 .

  • 백업을 실행하기 전에 사용자에게 정말로 백업을 수행할지(또는 드라이브만 사용할지) 묻습니다.
  • 백업이 완료되면 사용자에게 드라이브를 안전하게 제거할지(또는 드라이브를 사용할지) 묻습니다.

이제 내 문제는 borg 사이트의 백업 스크립트에 있습니다 root. 사용자에게 대화 상자를 표시하려면 --display=:0.0zenity 명령을 추가하고 my ~/.bashrc:

xhost local:$USER > /dev/null

이 접근 방식의 문제점은 터미널(예: Gnome 애플리케이션)이 시작된 후에만 작동한다는 것입니다. Gnome에 로그인하고 드라이브를 연결하면 대화 상자가 나타나지 않고 sudo journalctl다음 오류로 인해 스크립트가 실패하는 것을 볼 수 있습니다 .

zenity[2731]: cannot open display: :0.0

하지만 먼저 터미널을 열면 작동합니다. xhost다음 명령을 추가해 보았지만 /etc/profile.d/터미널을 시작해도 작동하지 않습니다.

그래서 내 질문은 다음과 같습니다xhost사용자가 터미널 애플리케이션을 열어두지 않은 경우에도 명령이 작동하도록 하려면 어디에 명령을 입력해야 합니까? 아니면 어떻게 해야 하나요?

답변1

나는 이것에 너무 많은 시간을 낭비하여 결국 자동 시작에 Gnome Terminal을 추가하게 되었고, 그래서 ~/.bashrc이 파일을 읽었습니다:

cd ~/.config/autostart
ln -s /usr/share/applications/org.gnome.Terminal.desktop

세련된 솔루션은 아니지만 최소한 외부 드라이브에 백업을 생성하는 것은 이제 간단합니다.

관련 정보