할당 된 지연 /etc/init.d/sendsigs로 킬 신호를 보내는 스크립트를 수정하고 2 반복에서 나머지 프로세스를 죽이는 시간을 줄였습니다. 시스템에서 작업이 완료되었는지 더 이상 종료되지 않고 더 이상 종료 및 재시작시 중단되지 않습니다.
아래는 /etc/init.d/sendsigs 부분이 # <---로 표시된 수정 부분입니다 :
# Kill all processes.
log_action_begin_msg "Asking all remaining processes to terminate"
killall5 -15 $OMITPIDS # SIGTERM
log_action_end_msg 0
alldead=""
OMITPIDS0="$OMITPIDS"
#for seq in 1 2 3 4 5 6 7 8 9 10; do # this is the original line
for seq in 1 2; do # <--- the above line is replaced by this one.
그런 다음 스크립트 하단에 :
# Upstart has a method to set a kill timeout and so the job author
# may want us to wait longer than 10 seconds (as in the case of
# mysql). (LP: #688541)
#
# We will wait up to 300 seconds for any jobs in stop/killed state.
# Any kill timeout higher than that will be overridden by the need
# to shutdown. NOTE the re-use of seq from above, since we already
# waited up to 10 seconds for them.
while [ -n "$(upstart_killed_jobs)" ] ; do
seq=$(($seq+1))
#if [ $seq -ge 300 ] ; then # this is the original line
if [ $seq -ge 2 ] ; then # <--- I can't wait for another 300 iteration
break
fi
참고 : 원래 스크립트가 다른 시스템에서 작동하기 때문에 최상의 해결책이 아닐 수 있습니다. 몇 가지 제안 된 솔루션이 적용되지 않는 시스템과 같은 시스템에서는 시스템이없는 워크 스테이션으로 만 시스템을 실행하고 있다고 생각하면 공유 할 수 있습니다 종료 또는 다시 시작 아이콘을 클릭하기 전에 사용하는 모든 데스크톱 응용 프로그램을 닫은 후 실행되는 중요 서비스.
사용중인 시스템은 Asus X550DP 랩탑입니다.
sudo shutdown -h now
완전히 종료되었는지 확인할 수 있습니다.