헤드리스가 불가능한 여러 Ubuntu 서버에서 프로그램을 실행하려고 합니다. 며칠에 한 번씩 재부팅을 해야 하는데 쉽게 할 수 있는 방법을 찾고 있습니다. Linux 시스템에 VNC 서버가 설치되어 있고 이에 연결하여 프로그램을 시작할 수 있지만 문제는 TightVNC를 수동으로 연 다음 TightVNC GUI 내에서 터미널을 열어 프로그램을 시작하는 명령을 실행해야 한다는 것입니다.
이상적으로 내가 원하는 것은 내 로컬 Windows 컴퓨터의 터미널에 한 줄을 작성하여 내 서버에서 프로그램을 시작한 다음 내 로컬 컴퓨터가 종료되더라도 여전히 서버에서 프로그램을 실행할 수 있는 것입니다.
답변1
GUI 애플리케이션을 실행해야 합니까, 아니면 일반 텍스트 프로그램을 실행해야 합니까?
터미널을 여는 것에 대해 언급하셨으니 이것이 텍스트 프로그램이라고 가정하겠습니다. 그렇다면 VNC를 사용할 필요 없이 ssh
.
SSH 연결이 중단된 경우에도 프로그램을 계속 실행해야 하는 경우 nohup
터미널 멀티플렉서(예: 또는 ) tmux
에서 프로그램을 사용하거나 실행할 수 있습니다 screen
. 로그아웃 시 모든 사용자 프로세스를 종료하도록 systemd가 구성된 경우 이를 재구성해야 할 수도 있습니다.
- 편집하다
/etc/systemd/logind.conf
- 행을 추가하십시오
KillUserProcesses=no
(logind.conf에 이미 주석 처리된 행이 있을 수 있습니다. 주석 처리를 제거하면 됩니다). - 저장 및 종료
- 달리기
systemctl daemon-reload
물론 위의 모든 작업은 루트로 수행되어야 합니다.
답변2
EPEL에서 pdsh
보거나병렬 분산 쉘.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
pdsh x86_64 2.34-5.el7 epel 114 k
Installing for dependencies:
pdsh-rcmd-ssh x86_64 2.34-5.el7 epel 15 k
man pdsh
pdsh is a variant of the rsh(1) command. Unlike rsh(1), which runs com‐
mands on a single remote host, pdsh can run multiple remote commands in
parallel. pdsh uses a "sliding window" (or fanout) of threads to con‐
serve resources on the initiating host while allowing some connections
to time out.
pdsh는 헤드 노드와 해당 컴퓨팅 노드 사이의 클러스터에서 수행하는 것처럼 서버 간에 비밀번호 없는 로그인을 허용하도록 SSH 키를 설정하는 경우 잘 작동합니다.