Windows 시스템의 Linux Mint에서 스크립트 실행

Windows 시스템의 Linux Mint에서 스크립트 실행

기본적으로 저는 Linux Mint를 사용하여 Powerpoint 프리젠테이션을 표시하려고 합니다.

프레젠테이션은 Windows 컴퓨터에서 업데이트되며 사용자는 프레젠테이션 터미널에서 프레젠테이션을 "새로 고침"하는 스크립트를 실행합니다. 현재 이 기능이 이미 있지만 Windows XP를 사용하고 있으며 지원 종료로 인해 이제 제거해야 합니다.

Mint에서 겪고 있는 문제는 Windows 시스템에서 현재 프레젠테이션 프로세스를 종료하고 프레젠테이션의 최신 복사본을 전송한 다음 실행하는 스크립트를 실행하는 방법을 모른다는 것입니다.

SSH 연결을 통해 plink를 사용하여 스크립트를 작성해 보았지만 콘솔 대신 "SSH" 세션에서 실행 중이었기 때문에 프레젠테이션이 표시되지 않았습니다.

어떤 아이디어를 제공해 주셔서 정말 감사합니다. 정신적인 장애를 겪었습니다!

감사해요

답변1

나는 여기서 몇 가지 현명한 추측을 하고 있습니다.

  • Linux 시스템에서는 일부 그래픽 세션이 실행되고 있으며, 아마도 xserver일 가능성이 높습니다.
  • SSH 연결을 사용하여 xserver에 액세스할 수 없습니다.

다음을 시도해 볼 수 있습니다.

  1. 새 프레젠테이션을 Linux 컴퓨터에 복사합니다.
  2. 데모 프로그램이 호출된다고 가정하면 foo(어떻게 호출되는지 알려주십시오), killall foo이를 사용하거나 종료 할 수 있습니다 pkill foo. 이는 올바른 사용자(또는 사용해서는 안 되는 루트)를 사용하는 경우 작동합니다.
  3. DISPLAY그래픽 애플리케이션을 시작하려면 SSH 스크립트에서 변수를 설정 해야 합니다 . 다음은 아마도 작동할 것입니다(그렇지 않으면 다음을 참조하세요).원격 X 모니터에서 창 열기("모니터를 열 수 없습니다" 이유)?).

    export DISPLAY=":0"
    
  4. 이제 다시 시작할 수 있고 foo화면에 표시됩니다.

이에 대한 스크립트를 생성할 수도 있습니다(실행 가능하게 만들기 chmod u+x restart-foo.sh:

#!/usr/bin/env bash
# name this script
#    restart-foo.sh
pkill foo
export DISPLAY=":0"
nohup foo path/to/presentation.xxx &

SSH를 사용하여 이 작업을 수행할 수 있습니다(Windows SSH 클라이언트에 따라 다릅니다).

my-command-to-copy-the-presentation
ssh user-name@linux-machine ./restart-foo.sh

답변2

설정에서 프레젠테이션을 libreoffice 에 저장/내보내기할 수 있는 경우 pdflibreoffice에서 evince로 전환하여 Linux 시스템에 프레젠테이션을 표시할 수 있습니다. Evince는 pdf표시된 파일이 변경되면 자동으로 보기를 업데이트하는 뷰어입니다.

설정에서 해야 할 일은 업데이트된 프레젠테이션을 Linux 시스템에 복사하는 방법을 알아내는 것뿐입니다. 가급적이면 pdfSamba 공유에 저장 되도록 설정할 수 있습니다 . 그런 다음 pdfWindows 컴퓨터 사용자가 저장하면 디스플레이가 즉시 업데이트됩니다.

답변3

Fabian의 도움으로 다음 스크립트를 사용하여 이 작업을 성공적으로 수행했습니다.

    #!/usr/bin/env bash
mount -t cifs //10.50.18.114/Presentation -o 'username=Administrator,password=***,sec=ntlm' /mnt/share
pkill soffice.bin
cp -v /mnt/share/Pres.ppt /home/kyle/Documents
chmod 777 /home/kyle/Documents/Pres.ppt
export DISPLAY=":0"
nohup libreoffice --norestore --nolockcheck --show /home/kyle/Documents/Pres.ppt &
sessionid="$(pidof -s sshd)"
kill $sessionid
exit

위 스크립트를 루트로 자동 실행하는 plink를 사용하여 "SSH 스크립트"를 실행하고 최종 종료 세션은 plink ssh 세션이 마지막에 멈추고 제대로 닫히지 않아 plink ssh 세션을 종료합니다.

관련 정보