터미널에서 프로그램을 시작하고 분리하는 가장 효율적인 방법은 무엇입니까?

터미널에서 프로그램을 시작하고 분리하는 가장 효율적인 방법은 무엇입니까?

다음과 같은 방식으로 터미널에서 프로그램을 시작하려고 합니다.

  1. 터미널을 닫아도 프로그램은 닫히지 않습니다
  2. 프로그램을 열거나 사용하거나 닫는 동안 프로그램이 터미널에 아무 것도 출력하지 않습니다.
  3. 터미널은 다른 용도로 무료로 사용할 수 있습니다.
  4. 명령은 짧고 달콤하다
  5. 걱정할 출력 파일이 없습니다.

답변1

보다 man nohup:

NAME
   nohup - run a command immune to hangups, with output to a non-tty

답변:

nohup program-name &

답변2

나는 이것이 가장 완벽한 방법이라고 생각합니다.

program-name </dev/null &>/dev/null &
disown %%

백그라운드 프로세스를 거부한다는 것은 쉘이 더 이상 프로세스를 추적하지 않는다는 것을 의미합니다. 완료되면 알려주지 않습니다. 쉘을 닫는 것을 방해하지는 않습니다. %%"가장 최근에 배경 작업을 수행한 작업"을 의미합니다.

모든 세부 사항을 숨기려면 .bashrc에 이와 같은 기능을 넣으십시오.

launch_and_forget () { "$@" </dev/null &>/dev/null & disown %%; }

그 다음에

launch_and_forget program args "args args" ...

당신에게 의미 있는 이름을 지어주세요.

답변3

당신은 아주 간단하게 사용할 수 있습니다setsid:-

NAME
       setsid - run a program in a new session

SYNOPSIS
       setsid program [arg...]

DESCRIPTION
       setsid runs a program in a new session.

다음 명령을 시도해 보십시오:-

setsid <command>

예: setsid gedit- setsid nautilus ~/Downloads/

답변4

나는 둘 중 하나를 추천할 것이다티먹스, 처럼렌시위안제안했거나GNU 화면. 이렇게 하면 명령에 대한 새 터미널을 얻게 됩니다. 분리하고 잊어버릴 수 있지만 마음이 바뀌면 다시 되돌릴 수 있습니다.

관련 정보