RHEL 7.4에서.
우리는 Citrix VDA를 사용하여 애플리케이션에 대한 UNIX 데스크톱 세션을 시작하고 있습니다. 세션은 애플리케이션 전용이므로 닫히면 VDA 세션이 종료됩니다(Citrix XenApp).
문제는 애플리케이션 코어가 덤프되면 백그라운드 작업을 시작하여 gdb를 사용하여 코어 파일을 평가하고, 코어 및 로그 파일을 수집 및 압축하고, 결과를 지원팀에 이메일로 보내려고 한다는 것입니다. 하지만 우리는 사용자의 포그라운드 세션을 영원히 열어두고 싶지 않기 때문에(몇 분 정도 걸릴 수 있음) 백그라운드 작업으로 실행해 보았습니다.
그러나 nohup 또는 사용자 정의 데몬 c 프로그램(모든 표준 데몬 표준 관행을 따릅니다) 등을 사용하는 모든 시도는 X 세션이 닫힌 후에 프로세스 실행을 유지하는 데 실패합니다. 문제는 세션이 dbus-launch로 설정되었다는 것입니다. 내부 작동을 모두 완전히 이해하지는 못하지만 종료 시 모든 것을 정리하는 기능이 있는 것 같습니다. 그렇다면 작업이 완료된 것입니다. .
그러면 로그아웃한 후에도 작업을 계속 실행하려면 어떻게 해야 합니까?
다음은 간단하지만 대표적인 세션 프로세스 트리입니다.
ps -fju 26811
UID PID PPID PGID SID C STIME TTY TIME CMD
545165 4653 4597 4597 4597 0 14:37 ? 00:00:00 /opt/Citrix/VDA/bin/ctxlogin -display :320
545165 4669 4653 4597 4597 0 14:37 ? 00:00:00 /bin/bash /opt/Citrix/VDA/bin/ctxsession.sh
545165 4773 1 4597 4597 0 14:37 ? 00:00:00 dbus-launch --sh-syntax --exit-with-session
545165 4774 1 4774 4774 0 14:37 ? 00:00:00 /bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
545165 4783 1 4774 4774 0 14:37 ? 00:00:00 /usr/libexec/dconf-service
545165 4818 4669 4597 4597 0 14:37 ? 00:00:00 /opt/Citrix/VDA/bin/ctxctl
545165 4819 4669 4597 4597 0 14:37 ? 00:00:00 /opt/Citrix/VDA/bin/ctxclipboard
545165 4821 4669 4597 4597 0 14:37 ? 00:00:03 /opt/Citrix/VDA/bin/ctxaudio
545165 4822 4669 4597 4597 0 14:37 ? 00:00:00 /opt/Citrix/VDA/bin/ctxlpmngt
545165 4824 4669 4597 4597 0 14:37 ? 00:00:05 /usr/bin/mutter
545165 4825 4669 4597 4597 0 14:37 ? 00:00:00 /opt/Citrix/VDA/bin/ctxtwi 16 4824
545165 4871 1 4870 4870 0 14:37 ? 00:00:00 /usr/bin/pulseaudio --start --log-target=syslog
545165 4894 1 4774 4774 0 14:37 ? 00:00:00 /usr/libexec/gvfsd
545165 4908 1 4774 4774 0 14:37 ? 00:00:00 /usr/libexec/at-spi-bus-launcher
545165 4915 4908 4774 4774 0 14:37 ? 00:00:00 /bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print
545165 4918 1 4774 4774 0 14:37 ? 00:00:00 /usr/libexec/at-spi2-registryd --use-gnome-session
545165 4935 4653 4597 4597 0 14:37 ? 00:00:00 xterm
545165 4973 4935 4973 4973 0 14:37 pts/2 00:00:00 bash
545165 8038 1 8038 8038 0 15:23 ? 00:00:00 ./daemonize
545165 8039 8038 8038 8038 0 15:23 ? 00:00:00 sleep 1200
545165 8052 4973 8052 4973 0 15:23 pts/2 00:00:00 ps -fju 26811
예를 들어, 로그아웃 후에도 데몬과 절전 프로세스를 계속 실행하려고 합니다. 자체 세션 리더이며 제어 터미널이 없습니다. 그러나 dbus-launch 프로세스가 종료되면 여전히 닫힙니다.
내가 올바른 길을 가고 있다면 env 변수는
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-mGwaZ8i3Ni,guid=57f80a3ec05a1036fe8a6e0e5d30ca6c
중요할 수도 있지만 데몬화하기 전에 설정을 해제하려고 시도했지만 도움이 되지 않았습니다.
로그아웃 후에도 가비지 수집 프로세스를 계속 실행할 수 있는 방법에 대한 아이디어가 있습니까?
고마워요, 브라이언