virt-измените-размер жалуется: “virt-измените-размер: ошибка: Вы не можете использовать - расширяются, когда нет никакого избыточного пространства для расширения в”.

Кажется, что так и должно быть:

Из журнала изменений selinux-policy-3.12.1-139:

- Разрешить ввод systemd_cronjob_t через, bin_t

Do у вас есть какие-либо ошибки в /var/log/audit/audit.log , относящиеся к mariadb ? Быстрая и простая проверка состоит в том, чтобы setenforce = 0 и запустить задания cron . Если им лучше, то это был SELinux, вызвавший проблему.

-121--230623-

Если в системе имеется systemd, для этого можно использовать события таймеров. Просто определите новую службу , которая должна содержать команду/задачу, которую необходимо выполнить, а затем создайте событие таймера с параметром OnUnitActiveSec :

[Unit]
Description=daily + 1 hour task

[Timer]
OnUnitActiveSec=25h # run 25 hours after service was last started
AccuracySec=10min

[Install]
WantedBy=timers.target

Используйте то же имя для файлов, за исключением того, что вместо .service используется .timer .

Синтез:

  1. Создайте файл с именем job.service в каталоге /etc/systemd/system/.
  2. Заполните его необходимой информацией. Проверить конфигурацию можно с помощью systemctl status job.service .
  3. Создайте файл с именем job.timer в /etc/systemd/system/.
  4. Заполните его необходимой информацией:

      [Единица измерения]
    Описание = ежедневная + 1 часовая задача
    
    [Таймер]
    OnUnitActiveSec = 25h # запуск через 25 часов после последнего запуска службы
    Рс = 10мин
    
    [Установить]
    PaydBy = timers.target
    
  5. Проверьте таймер, используя systemctl list-timers
  6. Done.

-121--26842-

Вопрос содержит свой ответ. Отправка SIGINT в процесс cat с помощью kill является идеальным моделированием того, что происходит при нажатии ^ C .

Более точно, символ прерывания ( ^ C по умолчанию) посылает SIGINT каждому процессу в основной группе процессов терминала. Если бы вместо cat выполнялась более сложная команда, включающая несколько процессов, для достижения того же эффекта, что и ^ C , необходимо было бы убить группу процессов.

При выполнении любой внешней команды без оператора фонового режима и оболочка создает новую группу процессов для этой команды и уведомляет терминал о том, что эта группа процессов теперь находится в основном режиме. Оболочка по-прежнему находится в собственной группе процессов, которая больше не находится на переднем плане. Затем оболочка ожидает выхода команды.

Вот где вы, кажется, стали жертвой распространенного заблуждения: идея о том, что оболочка делает что-то, чтобы облегчить взаимодействие между ее детским процессом (ами) и терминалом. Это просто неправда. После выполнения работы по настройке (создание процесса, настройка терминального режима, создание каналов и перенаправление других дескрипторов файлов и выполнение целевой программы) оболочка просто ожидает . То, что вы вводите в cat не проходит через оболочку,нормальный вход или генерирующий сигнал специальный символ, например ^ C . Процесс cat имеет прямой доступ к терминалу через собственные файловые дескрипторы, а терминал имеет возможность посылать сигналы непосредственно процессу cat , поскольку он является основной группой процессов. Снаряд сошел с пути.

После завершения процесса cat оболочка будет уведомлена, поскольку она является родительским объектом процесса cat . Затем оболочка становится активной и снова ставит себя на передний план.

Вот упражнение, чтобы улучшить ваше понимание.

В ответ на запрос оболочки в новом терминале выполните следующую команду:

exec cat

Ключевое слово exec вызывает выполнение оболочки cat без создания дочернего процесса. Оболочка заменена на кошку . PID, ранее принадлежавший оболочке, теперь является PID cat . Проверьте это с помощью ps в другом терминале. Введите несколько случайных строк и посмотрите, что cat повторяет их обратно вам, доказывая, что он все еще ведет себя нормально, несмотря на отсутствие процесса оболочки в качестве родительского. Что произойдет, когда вы нажмете ^ C сейчас?

Ответ:

SIGINT доставляется в процесс cat, который умирает. Потому что это был единственный процесс на терминале, сеанс заканчивается, как если бы вы сказали «выход» в командной строке. Фактически кот некоторое время был вашей оболочкой.

1
27.04.2014, 01:12
1 ответ
[115096] Если вы используете достаточно современную версию KVM (CentOS 6+), то перед запуском команды [115480]virt-reze [115481] вам необходимо развернуть файл изображения. Обычно это процесс в 2 шага:

Следующая команда изменения размера:

SD card with built-in USB interface

Это приведет к расширению файла [115482].img[115483] на 2 ГБ. Измените аргумент на [115484]усеченный[115485] на любой размер, на который вы хотите расширить файл [115486].img[115487].

Hacked SD card, exposing USB interface

Ссылки

Как увеличить место на гостевом диске KVM?

0
28.01.2020, 01:57

Теги

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