nohup을 사용하여 터미널에서 Plasma 5를 다시 시작하는 방법은 무엇입니까?

nohup을 사용하여 터미널에서 Plasma 5를 다시 시작하는 방법은 무엇입니까?

Plasma 5를 다시 시작하는 데 대한 많은 질문과 답변이 있습니다. KRunner를 사용하는 것이 최선의 선택이라는 것을 알고 있지만 오늘은 KRunner에 액세스할 수 없어 터미널을 사용해야 합니다.

읽고 나서nohup, disown, &의 차이점, 나는 이 두 가지 주제(Plasma 5 다시 시작 및 nohub/disown/백그라운드 작업)를 KDE Plasma 5를 올바른 방법으로 다시 시작하는 데 전념하는 하나의 답변으로 병합해야 한다고 생각합니다. Plasma 5를 다시 시작하는 것과 관련하여 내가 본 거의 모든 답변은 이것을 무시합니다 nohup.

Plasma 5 다시 시작에 대한 다양한 답변을 따르면 새로 시작된 Plasma 5 세션을 종료하지 않고는 터미널 창을 닫을 수 없는 경우가 여러 번 있었습니다.

다음 스크립트는 대부분 일부 답변에서 나온 것입니다.https://unix.stackexchange.com/a/499373, 을 포함하도록 수정되었습니다 nohup. 이것이 최종적이고 포괄적인 솔루션입니까? 아니면 이러한 혼란을 피해야 합니까?

#!/bin/sh
kbuildsycoca5 # rebuilds the plasmashell database
timeout 5 kquitapp5 plasmashell #without timeout, it can hang for ~30-60 seconds
pgrep -U $USER -x plasmashell &>/dev/null && pkill -U $USER -x plasmashell
pgrep -U $USER -x plasmashell &>/dev/null && pkill -U $USER -x -9 plasmashell # here the process does not get to clean-up.
killall -9 plasmashell #sends a signal to all processes running any of the specified commands
pgrep -U $USER -x plasmashell &>/dev/null && echo "ERROR: cannot kill plasmashell"
nohup plasmashell &

내 구체적인 질문은 마지막 줄에 관한 것입니다.

nohup plasmashell &

이 경우에는 이게 맞나요?

답변1

의견처럼 kde 응용 프로그램을 다시 시작하는 것은 잘못된 접근 방식입니다.

Plasmashell과 같은 것을 다시 시작하고 싶을 때 호출하는 스크립트가 있습니다...

#!/bin/sh
for i in $* do
        kquitapp5 ${i}
        PID=$(ps -ax | grep ${i}$ | awk '{print $1}'
        test -n ${PID} && kill -9 ${PID}
        kstart5 ${i}
done

관련 정보