Как отменить следующее задание в порядке после rsync

Если два задания вводятся в командную строку удара, разделенную точкой с запятой:

$ job 1; job 2;

Как я отменяю второй? Если я нажму CTRL+c, то первый будет отменен, и 'задание 2' запустилось бы, я просто хочу остановить вторую работу, которая не будет выполняться. Я попробовал atq, PS, но никакая удача, с PS-ef I не видит только 'задания 1', но 'задания 2', не перечислен, таким образом, я не могу добраться, PID для использования уничтожают. Я знаю, что могу использовать && вместо; но слишком поздно теперь, я выполнил эту команду случайно на моем сервере вместо моего домашнего ПК, и теперь я пытаюсь выяснить, как предотвратить аварию.

Эта проблема характерна для команды rsync, сопровождаемой другой командой:

$ rsync ..... ; sudo shutdown -h now

При уничтожении процесса идентификатором или уничтожении это - родитель, не будет работать.

После нескольких часов тестирования я изолировал его к rsync, другие команды, которые я могу завершить с CTRL+c в различных заказах, но не, если они после некоторых команд как rsync или ping, я попробовал различные версии Ubuntu, ядра, сервер без sudo пользователя и я мог воспроизвести его везде, лучший способ избежать, чтобы эта проблема состояла в том, чтобы использовать && после rsync для выполнения следующей команды только на коде выхода 0 успеха:

$ rsync .... && job 2
2
задан 11 July 2015 в 11:27

2 ответа

Я думаю, что вы что-то упустили. Когда вы запускаете две команды, разделенные ;, вы можете убить обе команды с помощью CTRL + c .

просто чтобы убедиться, попробуйте эту команду:

find / -name a ; ls /home

Затем убейте вышеупомянутые команды с помощью CTRL + c , это убьет оба процесса, Вы не будете перечислять ваш домашний контент. Т.е. следующая команда не будет запущена.


ОБНОВЛЕНИЕ: Это также будет действовать для вашей команды rsync. Вот мой пример:

$ rsync -avz /var/cache/apt/archives/ /tmp/backups/ ; sudo shutdown -h now

sending incremental file list
created directory /tmp/backups
./
authbind_1.2.0build3_amd64.deb
................
^Crsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(549) [sender=3.0.9]
[sudo] password for user: 

Так, как вы видите выше. Когда вы запускаете CTRL + c , это убивает первую команду и при запуске shudown будет запросить у вас пароль sudo, чтобы вы могли теперь убить второй процесс, снова используя CTRL + c .


Обновление 2 В качестве решения проблемы вы можете сделать:

  • , так как вы используете пароль без пароля sudo, а затем снова сделайте sudo запрос пароля редактирование файла sudoer sudo visudo
  • В качестве последнего шага, если больше ничего не работает и просто взлом, и это не рекомендуется , отредактируйте команду /sbin/shutdown, чтобы удалить +x, или просто переименуйте ее под другим именем.
  • [+1121]
3
ответ дан 2 December 2019 в 01:37

Убить родительский процесс job1 с помощью SIGKILL.

Показать процессы в дереве процессов, например. с помощью htop или ps axf и уничтожьте родительский процесс для job1 , а не для самого job1.


Установите htop с

sudo apt-get install htop

Downvoters, поймите ответ перед понижением

4
ответ дан 2 December 2019 в 01:37

Другие вопросы по тегам:

Похожие вопросы: