Как правильно завершить работу системы, пока apt-get все еще работает? apt-get жалуется на некорректное завершение работы, когда я просто выключаю компьютер.
решение1
В качестве уточнения совета Писквора («не надо»), вы можете ввести следующую команду в командной строке:
sleep 10m ; shutdown -h now
Вышесказанное предполагает, что вы работаете как суперпользователь.
Идея в том, чтобы позволить apt-get завершиться перед выключением, без необходимости сидеть и ждать, пока он завершится. Вы могли бы написать более элегантный скрипт, который, например, использует ps и grep для определения того, завершился ли apt-get, но у меня нет доступа к Linux-компьютеру здесь на работе, чтобы протестировать такой скрипт.
решение2
Сначала закрыть apt-get? Возможно, использовать сигнал прерывания (^C, если на переднем плане, в противном случае kill
)
Обновлять:
Вы можете получить список сигналов с помощьюkill -l
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
30) SIGPWR 31) SIGSYS 32) SIGRTMIN 33) SIGRTMIN+1
34) SIGRTMIN+2 35) SIGRTMIN+3 36) SIGRTMIN+4 37) SIGRTMIN+5
38) SIGRTMIN+6 39) SIGRTMIN+7 40) SIGRTMIN+8 41) SIGRTMIN+9
42) SIGRTMIN+10 43) SIGRTMIN+11 44) SIGRTMIN+12 45) SIGRTMIN+13
46) SIGRTMIN+14 47) SIGRTMIN+15 48) SIGRTMAX-15 49) SIGRTMAX-14
50) SIGRTMAX-13 51) SIGRTMAX-12 52) SIGRTMAX-11 53) SIGRTMAX-10
54) SIGRTMAX-9 55) SIGRTMAX-8 56) SIGRTMAX-7 57) SIGRTMAX-6
58) SIGRTMAX-5 59) SIGRTMAX-4 60) SIGRTMAX-3 61) SIGRTMAX-2
62) SIGRTMAX-1 63) SIGRTMAX
Прежде чем пробовать 9 (SIGKILL), ядерный вариант, вы можете попробовать более мягкие сигналы, такие как HUP, INT, QUIT или, может быть, USR1, USR2 или ABRT. На самом деле, документация программы для apt-get должна сказать, обрабатывает ли она какой-либо из этих сигналов по-другому. Поскольку это не так, я не питаю больших надежд. В некоторых отчетах об ошибках упоминалось, что INT должен работать.