Как правильно останавливать обновление/скачивание пакета из консоли?

Kubuntu, Xubuntu и другие

Модератор: Модераторы разделов

fergios
Сообщения: 512
ОС: debian stable

Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение fergios »

Как правильно останавливать обновление/скачивание пакета из консоли?

Если останавливаю, нажатием ctrl+z или ctrl+c , то
при повтроном запуске консоли, и обновления/скачивания пакета, коносль пишет что dpkg is running...и чтобы apt-get install,apt-get update и т.д. заработали нужно перезагружаться.
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение allez »

Ctrl+C. Ctrl+Z не останавливает выполняющуюся задачу, а отправляет ее в фоновый режим. Отсюда и сообщение "dpkg is running".
Для исправления этого досадного обстоятельства перезагружаться вовсе не обязательно. Достаточно завершить процесс dpkg. Сделать это можно двумя способами:

1. Если на машине работают несколько пользователей, то отыскиваем и останавливаем только свои процессы.

Код: Выделить всё

kill $(ps u -C dpkg | grep ^$USER | awk '{print $2}')

2. Если же вы единственный пользователь компьютера, то можно применить "оружие массового поражения" вместо "высокоточного". :)

Код: Выделить всё

killall dpkg
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение watashiwa_daredeska »

allez писал(а):
10.09.2010 10:17
Если на машине работают несколько пользователей, то отыскиваем и останавливаем только свои процессы.
Для apt/dpkg это не работает. При обновлении они работают от рута, а не от пользователя.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение t.t »

Да и kill/killall от пользователя чужие процессы не прибьёт.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение Rootlexx »

allez писал(а):
10.09.2010 10:17
Ctrl+Z не останавливает выполняющуюся задачу, а отправляет ее в фоновый режим.

Ctrl-Z останавливает выполняющуюся задачу, но не переводит её в фоновый режим выполнения. Это нужно сделать явно командой bg.
По теме: вместо использования kill или killall лучше вернуть приостановленную команду в приоритетный режим:

Код: Выделить всё

jobs        # Ищем номер приостановленного задания.
fg номер_задания
- и, если нужно, завершить обычным Ctrl-C.
Интересно, уже который раз встречаю ошибочное представление, что Ctrl-Z завершает выполняющуюся команду, - откуда это берётся?
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение SLEDopit »

Rootlexx писал(а):
10.09.2010 12:55
откуда это берётся?
от лени. точно говорю. (:
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.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение t.t »

Кстати, приостановленный процесс и не прервётся по сигналу, пока его не «возобновить».
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение SLEDopit »

t.t писал(а):
10.09.2010 13:21
Кстати, приостановленный процесс и не прервётся по сигналу, пока его не «возобновить».
А это смотря как убивать:

Код: Выделить всё

 $ 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.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение t.t »

SLEDopit писал(а):
10.09.2010 13:33
t.t писал(а):
10.09.2010 13:21
Кстати, приостановленный процесс и не прервётся по сигналу, пока его не «возобновить».
А это смотря как убивать:
Ну, выше ведь было не kill -9; и потом, SIGKILL в принципе неотвратим. Потому я на этом случае и не остановился отдельно.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение Rootlexx »

t.t писал(а):
10.09.2010 13:21
Кстати, приостановленный процесс и не прервётся по сигналу, пока его не «возобновить».

Конечно, ведь если процесс приостановлен, то и стандартные обработчики сигналов не выполнятся, ведь выполняются они в контексте процесса. Сработают лишь необрабатываемые сигналы (SIGKILL, ...).
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение sash-kan »

как-то вы усложняете жизнь, господа. остановленный процесс прекрасно можно возобновить:

Код: Выделить всё

$ 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: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение Rootlexx »

sash-kan писал(а):
10.09.2010 14:39
как-то вы усложняете жизнь, господа. остановленный процесс прекрасно можно возобновить:

Вполне вероятно, что dpkg сразу захочет записать что-нибудь в tty, получит SIGTTOU и снова остановится.
Добавлено: если для tty установлен параметр tostop.

Код: Выделить всё

stty -a | grep tostop
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение t.t »

sash-kan писал(а):
10.09.2010 14:39
как-то вы усложняете жизнь, господа. остановленный процесс прекрасно можно возобновить:
Кто это «вы, господа»? (: Я разве сказал, что приостановленный процесс нельзя возобновить по сигналу? Только лишь что его нельзя по сигналу завершить (кроме SIGKILL, конечно), пока он не будет возобновлён.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
fergios
Сообщения: 512
ОС: debian stable

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение fergios »

Интересно, уже который раз встречаю ошибочное представление, что Ctrl-Z завершает выполняющуюся команду, - откуда это берётся?
консоль в это время пишет слово stopped
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение t.t »

fergios писал(а):
10.09.2010 15:47
Интересно, уже который раз встречаю ошибочное представление, что Ctrl-Z завершает выполняющуюся команду, - откуда это берётся?
консоль в это время пишет слово stopped
«Консоль пишет» правильно. Это Вы неправильно написали: Вам, как я понял, не остановить, а прервать нужно было.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение watashiwa_daredeska »

Rootlexx писал(а):
10.09.2010 12:55
ошибочное представление, что Ctrl-Z завершает выполняющуюся команду, - откуда это берётся?
Из вендов, если там это ещё осталось. В MS-DOS Ctrl-Z точно завершало задачу.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как правильно останавливать обновление/скачивание пакета из консоли?

Сообщение t.t »

watashiwa_daredeska писал(а):
10.09.2010 16:18
Rootlexx писал(а):
10.09.2010 12:55
ошибочное представление, что Ctrl-Z завершает выполняющуюся команду, - откуда это берётся?
Из вендов, если там это ещё осталось. В MS-DOS Ctrl-Z точно завершало задачу.
В MS-DOS ^Z это EOF, если мне память не изменяет.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали: