스크립트/명령어를 종료하지 않고 터미널을 닫으려면 &
명령을 호출할 때 마지막에 연산자를 사용합니다. 좋다:
gedit &
gedit
여기서는 예제 명령으로 사용하고 있습니다.
다른 터미널(현재 터미널)에서 동일한 작업을 수행하고 싶습니다. 다른 터미널에서 스크립트/명령을 실행하기 위해 다음을 사용하고 있습니다.
gnome-terminal -e 'gedit'
gnome-terminal -x bash -c 'gedit'
하지만 여기서 문을 닫으면새로 오픈한 터미널, 실행 중인 스크립트/프로그램 [command]
도 종료됩니다. 그래서 &
다음을 사용해 보았습니다 .
gnome-terminal -e 'gedit' &
gnome-terminal -x bash -c 'gedit' &
그러나 위의 어느 것도 작동하지 않습니다.
따라서 이를 달성하는 방법은 다음과 같습니다. 현재 터미널에서 시작하여 gnome-terminal
다른 터미널에서 명령을 실행하고 gnome-terminal
명령을 시작한 후 실행 중인 터미널을 종료하지 않고 해당 (새로 열린) 터미널을 닫습니다 command
.
답변1
이 명령을 사용할 수 있습니다 nohup
. 그러면 터미널에서 프로세스 연결이 끊어지므로 gnome 터미널 창을 닫아도 계속 실행됩니다.
예:gnome-terminal -e "nohup bash gedit"
답변2
화면 유틸리티를 사용할 수 있습니다. Screen은 여러 프로세스(일반적으로 대화형 셸)에서 작동하는 전체 화면 창 관리자입니다 man screen
. .
쉘에서 screen 명령을 실행하면 쉘이 포함된 새 창이 생성됩니다. 원하는 명령/스크립트/데몬을 실행할 수 있습니다. 단축키 Ctrl+A+D를 사용하여 창에서 쉽게 분리할 수 있습니다.
시작한 모든 세션을 나열하려면 를 사용할 수 있습니다 screen -list
. 마지막으로 분리된 세션에 연결 screen -r
하거나 특정 세션에 연결하려는 경우 연결을 사용할 수 있습니다 screen -r <host.tty>
.
예:
[root@dns-ldap ~]# screen -list
There are screens on:
5708.pts-0.dns-ldap (Detached)
5648.pts-0.dns-ldap (Detached)
5725.pts-0.dns-ldap (Detached)
3 Sockets in /var/run/screen/S-root.
[root@dns-ldap ~]# screen -r 5708.pts-0.dns-ldap #this will attach you to terminal 5708.pts-0.dns-lda. I have detached from the terminal usinc Ctrl+A+D
[detached]
[root@dns-ldap ~]# screen -r 5648.pts-0.dns-ldap
[detached]
[root@dns-ldap ~]#
답변3
콤비네이션nohup
&screen
, 마침내 내가 원하는 것을 달성했습니다.
통과키릴아gnome-terminal -e "nohup bash gedit"
, 다음 명령을 사용하는 것이 좋습니다.
그런데 위 명령어를 이용하면 명령어를 실행할 수 있고, gnome-terminal
실행중인 명령어를 종료하지 않고도 새로 열린 명령어를 닫을 수 있는데,하지만새로 열린 창을 수동으로 닫아야 합니다 gnome-terminal
. 명령을 시작한 후 자동으로 닫히기를 원합니다.
통과디미타르 디미트로프 screen
명령을 사용하는 것이 좋습니다.
마침내 나는 내 것을 screen
사용했다nohup
최종 명령은 다음과 같습니다.
gnome-terminal -e 'screen nohup gedit'
gnome-terminal -x bash -c 'screen nohup gedit'
위 명령 중 하나를 사용하면 다음과 같은 결과를 얻을 수 있습니다.명령은 새 터미널 창에서 실행되며, 명령 실행 후 실행 중인 명령을 종료하지 않고 새로 열린 터미널이 닫힙니다.