Как правильно останавливать обновление/скачивание пакета из консоли?
Модератор: Модераторы разделов
-
fergios
- Сообщения: 512
- ОС: debian stable
Как правильно останавливать обновление/скачивание пакета из консоли?
Как правильно останавливать обновление/скачивание пакета из консоли?
Если останавливаю, нажатием ctrl+z или ctrl+c , то
при повтроном запуске консоли, и обновления/скачивания пакета, коносль пишет что dpkg is running...и чтобы apt-get install,apt-get update и т.д. заработали нужно перезагружаться.
Если останавливаю, нажатием ctrl+z или ctrl+c , то
при повтроном запуске консоли, и обновления/скачивания пакета, коносль пишет что dpkg is running...и чтобы apt-get install,apt-get update и т.д. заработали нужно перезагружаться.
-
allez
- Сообщения: 2223
- Статус: Не очень злой админ :-)
- ОС: SuSE, CentOS, FreeBSD, Windows
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
Ctrl+C. Ctrl+Z не останавливает выполняющуюся задачу, а отправляет ее в фоновый режим. Отсюда и сообщение "dpkg is running".
Для исправления этого досадного обстоятельства перезагружаться вовсе не обязательно. Достаточно завершить процесс dpkg. Сделать это можно двумя способами:
1. Если на машине работают несколько пользователей, то отыскиваем и останавливаем только свои процессы.
2. Если же вы единственный пользователь компьютера, то можно применить "оружие массового поражения" вместо "высокоточного". :)
Для исправления этого досадного обстоятельства перезагружаться вовсе не обязательно. Достаточно завершить процесс dpkg. Сделать это можно двумя способами:
1. Если на машине работают несколько пользователей, то отыскиваем и останавливаем только свои процессы.
Код: Выделить всё
kill $(ps u -C dpkg | grep ^$USER | awk '{print $2}')2. Если же вы единственный пользователь компьютера, то можно применить "оружие массового поражения" вместо "высокоточного". :)
Код: Выделить всё
killall dpkgСпасибо сказали:
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
Для apt/dpkg это не работает. При обновлении они работают от рута, а не от пользователя.
Мои розовые очки
Спасибо сказали:
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
Да и kill/killall от пользователя чужие процессы не прибьёт.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
Ctrl-Z останавливает выполняющуюся задачу, но не переводит её в фоновый режим выполнения. Это нужно сделать явно командой bg.
По теме: вместо использования kill или killall лучше вернуть приостановленную команду в приоритетный режим:
Код: Выделить всё
jobs # Ищем номер приостановленного задания.
fg номер_заданияИнтересно, уже который раз встречаю ошибочное представление, что Ctrl-Z завершает выполняющуюся команду, - откуда это берётся?
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
Кстати, приостановленный процесс и не прервётся по сигналу, пока его не «возобновить».
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
А это смотря как убивать:
Код: Выделить всё
$ vi newfile
[1]+ Stopped vi newfile
$ ps -ef | grep vi
root 1531 1 0 06:56 ? 00:00:00 /usr/sbin/libvirtd -d
user 28731 27736 0 13:28 pts/6 00:00:00 vi newfile
user 28740 27736 0 13:28 pts/6 00:00:00 grep vi
$ kill -9 28731
[1]+ Killed vi newfile
$ vi newfile2
[1]+ Stopped vi newfile2
$ ps -ef | grep vi
root 1531 1 0 06:56 ? 00:00:00 /usr/sbin/libvirtd -d
user 28796 27736 0 13:29 pts/6 00:00:00 vi newfile2
user 28803 27736 0 13:29 pts/6 00:00:00 grep vi
$ kill -15 28796
$ bg
[1]+ vi newfile2 &
[1]+ Stopped vi newfile2
$UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
Ну, выше ведь было не kill -9; и потом, SIGKILL в принципе неотвратим. Потому я на этом случае и не остановился отдельно.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
Конечно, ведь если процесс приостановлен, то и стандартные обработчики сигналов не выполнятся, ведь выполняются они в контексте процесса. Сработают лишь необрабатываемые сигналы (SIGKILL, ...).
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
как-то вы усложняете жизнь, господа. остановленный процесс прекрасно можно возобновить:
Код: Выделить всё
$ sleep 100
^Z
[1]+ Stopped sleep 100
$ ps ax | grep sleep
17274 pts/2 T 0:00 sleep 100
$ pkill -CONT sleep
$ ps ax | grep sleep
17274 pts/2 S 0:00 sleep 100
$Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
Вполне вероятно, что dpkg сразу захочет записать что-нибудь в tty, получит SIGTTOU и снова остановится.
Добавлено: если для tty установлен параметр tostop.
Код: Выделить всё
stty -a | grep tostop-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
Кто это «вы, господа»? (: Я разве сказал, что приостановленный процесс нельзя возобновить по сигналу? Только лишь что его нельзя по сигналу завершить (кроме SIGKILL, конечно), пока он не будет возобновлён.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
fergios
- Сообщения: 512
- ОС: debian stable
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
консоль в это время пишет слово stoppedИнтересно, уже который раз встречаю ошибочное представление, что Ctrl-Z завершает выполняющуюся команду, - откуда это берётся?
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
«Консоль пишет» правильно. Это Вы неправильно написали: Вам, как я понял, не остановить, а прервать нужно было.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
Из вендов, если там это ещё осталось. В MS-DOS Ctrl-Z точно завершало задачу.
Мои розовые очки
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как правильно останавливать обновление/скачивание пакета из консоли?
В MS-DOS ^Z это EOF, если мне память не изменяет.watashiwa_daredeska писал(а): ↑10.09.2010 16:18Из вендов, если там это ещё осталось. В MS-DOS Ctrl-Z точно завершало задачу.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж