파일 관리자는 열린 프로그램을 어떻게 분할합니까?

파일 관리자는 열린 프로그램을 어떻게 분할합니까?

앞으로 몇 주 동안 저는 터미널 에뮬레이터를 기본 파일 관리자로 사용하는 데 도전할 것입니다.

문제가 있습니다. 명령줄에서 GUI 프로그램의 파일(예: Inkscape .svg)을 어떻게 열 수 있나요? 다음을 사용할 수 있다는 것을 알고 있습니다.

inkscape ./Design.svg &

백그라운드로 이동하지만 gnome-terminal해당 프로세스의 자식으로 남아 있습니다(그리고 함께 죽습니다). 또한 디버그 경고 등이 해당 터미널에 출력됩니다(귀찮고 짜증스럽습니다).

Nautilus와 같은 파일 관리자가 시작된 편집기 프로세스를 더 이상 연결되지 않는 방식으로 분리하려면 어떻게 해야 합니까?

내 터미널에서 이 작업을 어떻게 수행할 수 있나요?

답변1

이를 달성하는 다양한 방법이 각 방법의 장단점과 함께 기사에 논의되어 있습니다."bash백그라운드에서 명령을 올바르게 실행". 주로 그 기사와 내가 읽은 내용을 바탕으로합니다.POSIX 사양nohup, 원하는 것을 달성하는 가장 이식 가능한 방법은 다음과 같습니다.

nohup inkscape ./Design.svg >/dev/null 2>&1 &

이는 실제로 프로세스를 거부하지 않습니다. 터미널은 여전히 ​​상위 프로세스입니다. 하지만,

  1. 터미널이 죽더라도 inkscape 프로세스는 죽지 않으며
  2. 터미널에는 출력이 표시되지 않습니다.
  3. nohup.out파일을 삭제한 것처럼 홈 디렉터리에 파일이 생성되지 않습니다 /dev/null(.nohup문서이 문서를 설명하기 위해. )

bashPOSIX 이식성을 사용하고 있고 단순성에만 관심이 있는 경우 @thrig가 주석에서 지적한 것처럼 가장 쉬운 방법은 다음과 같습니다.

inkscape ./Design.svg & disown

disown이 사용 사례에는 필요하지 않지만 사용할 수 있는 몇 가지 옵션이 있습니다. help disown사용 가능한 다른 옵션을 보려면 입력하세요 .

관련 정보