Действительно ли возможно остановить команду завершения работы?

Sed лучше для этого.

Просто сделайте:

sed '/PATTERN/q' FILE

Это работает как это:

Для каждой строки мы смотрим, если она соответствует /PATTERN:

  • если да, мы печатаем его и выходим
  • иначе мы печатаем его

Это - наиболее эффективное решение, потому что, как только оно видит PATTERN, это выходит. Без q, sed продолжил бы читать остальную часть файла, и ничего не делать с ним. Для больших файлов это может иметь значение.

Этот прием может также использоваться для эмуляции head:

sed 10q FILE

23
18.01.2011, 18:21
4 ответа

Можно работать shutdown -c отменять уже рабочее завершение работы.

22
27.01.2020, 19:41
  • 1
    Не верил этому сначала, но да. Более конкретно ctrl+c –  Ken 18.01.2011, 18:45
  • 2
    @Ken: завершите работу-c, и [Ctrl] + [c] совершенно отличаются. завершение работы-c является командой, которая отменяет ранее запланированное завершение работы (даже "теперь" планируется в этом смысле---, но предотвратит ли отмена перезагрузку, что-то вроде гонки в этом случае). [Ctrl] + [c] заставит Вас терминальный генерировать SIGINT (сигнал прерывания) к тому, какой бы ни процесс в настоящее время был присоединен к нему. Это могло бы работать над рабочей командой завершения работы, но это довольно несущественно для Вашего вопроса. –  Jim Dennis 18.01.2011, 19:25
  • 3
    @Jim Dennis: я знаю о различии между ctrc+c и shutdown -c. Но, учитывая скорость -now опция, а не ее запланированный одноуровневый элемент, ctrl+c был бы самый быстрый маршрут с этой целью. Я не полагал, что Вы могли остановить постоянное завершение работы, еще более удивленное, что можно прервать его, но по-видимому Вы можете, но это - гонка, как Вы заявили. –  Ken 18.01.2011, 19:45

Если Вы достаточно быстры, можно выйти init 2 (или безотносительно runlevel Вы хотите), и это, вероятно, остановит завершение работы. Что-либо, что вовлечение, уничтожающее команду завершения работы, приведет к сбою как команда, работает слишком быстро

Я попробовал это сценарием ниже и и даже это не достаточно быстро для остановки завершения работы

#!/bin/bash
shutdown -h now
shutdown -c "Aborting Shutdown"

Broadcast message from iain@iain-ubuntu
        (/dev/pts/0) at 16:50 ...

The system is going down for halt NOW!
shutdown: Cannot find pid of running shutdown

Где как в интерактивном режиме

shutdown -h now
init 2 

система не ложится спать.

13
27.01.2020, 19:41

Предположим, что вы послали сообщение о перезагрузке или выключении в целях обслуживания на весь терминал, что "сервер перезагрузится или выключится в целях обслуживания в течение 10 минут"

Такая команда может быть отменена.

просто нажмите Ctrl+C

0
27.01.2020, 19:41

Из справочной страницы FreeBSD:

A scheduled shutdown can be canceled by killing the shutdown process (a SIGTERM should suffice).

Таким образом, killall shutdownработает на BSD, когда есть запланированное завершение работы (, например.shudown -h +5).

Я не думаю, что отменить немедленное отключение(shutdown -h now)невозможно в реальных -сценариях жизни.

2
27.01.2020, 19:41

Теги

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