다음은 2개의 코드 예제입니다. 둘 다 nohup
bash 문자열의 코드 입니다 . 첫 번째 사람은 일을 했고, 두 번째 사람은 일을 하지 않았습니다. 나는 이유를 물었다.
sudo apt-get purge zip unzip
nohup bash -c " sleep 20s; apt-get install zip unzip; " &
위의 명령은 백그라운드에서 실행되어 이러한 소프트웨어로 설치됩니다( zip
stdin " "을 실행하여 확인했습니다.
nohup bash -c " sleep 20s; clear; "
이 명령은 포그라운드에서 실행되지만 tty를 지우지는 않습니다. 왜 그런 겁니까? 현재 세션의 화면을 지우려면 어떻게 해야 합니까? 도움이 될 수 있는 명령으로 실행할 수 있는 매개변수/실행/스크립트가 있습니까?
답변1
프로그램 clear
이 작성 중입니다.표준 출력,지금 바로리디렉션명령 으로 nohup
. 따라서 이것은 터미널에 영향을 미치지 않습니다.
에서 (의 clear
) 출력을 볼 수 있습니다 nohup.out
.
다음을 수행할 수 있습니다.
nohup bash -c " sleep 20s; clear >/dev/tty; "
출력을 장치 clear
로 리디렉션하도록 셸에 지시합니다 . 명령을 사용하여 터미널을 식별 tty
할 수 있습니다.tty
장비당신이 사용하는 것, 예를 들어
nohup bash -c " sleep 20s; clear > $(tty); "
그러나 대부분의 경우 둘 다 작동합니다.
으로부터 경고를 받을 수 있습니다 nohup
. 이 경고는 무음으로 설정될 수 있습니다.
nohup bash -c " sleep 20s; clear > $(tty); " 2>/dev/null