<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Аспро: ЛайтШоп [тема: Снять диск в hookscript после остановки.]</title>
		<link>http://proxmox.su</link>
		<description>Новое в теме Снять диск в hookscript после остановки. форума Proxmox Виртуальная Среда на сайте Аспро: ЛайтШоп [proxmox.su]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Wed, 06 May 2026 18:26:01 +0300</pubDate>
		<item>
			<title>Снять диск в hookscript после остановки.</title>
			<description><![CDATA[<b><a href="http://proxmox.su/forum/messages/forum63/message334561/79071-snyat-disk-v-hookscript-posle-ostanovki.">Снять диск в hookscript после остановки.</a></b> <i>Proxmox Виртуальная Среда</i> в форуме <a href="http://proxmox.su/forum/forum63/">Proxmox Виртуальная Среда</a>. <br />
			Использую Bash-скрипт вместо Perl и запускаю команды в post-stop параллельно с &. В моем случае qm автоматически немного ждет, пока VM все еще заблокирована, и все работает нормально.<br /><br />Bash: #!/bin/bash<br />if [ "$2" == "pre-start" ]<br />then<br /> &nbsp; &nbsp;echo "VM $1 самоуничтожится после выключения!"<br />elif [ "$2" == "post-stop" ]<br />then<br /> &nbsp; &nbsp;nohup /usr/sbin/qm destroy "$1" &&gt;/dev/null &<br />fi <br />
			<i>27.06.2025 11:09:00, leesteken.</i>]]></description>
			<link>http://proxmox.su/forum/messages/forum63/message334561/79071-snyat-disk-v-hookscript-posle-ostanovki.</link>
			<guid>http://proxmox.su/forum/messages/forum63/message334561/79071-snyat-disk-v-hookscript-posle-ostanovki.</guid>
			<pubDate>Fri, 27 Jun 2025 11:09:00 +0300</pubDate>
			<category>Proxmox Виртуальная Среда</category>
		</item>
		<item>
			<title>Снять диск в hookscript после остановки.</title>
			<description><![CDATA[<b><a href="http://proxmox.su/forum/messages/forum63/message334560/79071-snyat-disk-v-hookscript-posle-ostanovki.">Снять диск в hookscript после остановки.</a></b> <i>Proxmox Виртуальная Среда</i> в форуме <a href="http://proxmox.su/forum/forum63/">Proxmox Виртуальная Среда</a>. <br />
			Если вы передаете устройство диска PCI через проброс, разве гостевой сеанс не должен заниматься монтированием/демонтированием? <br />
			<i>27.06.2025 10:39:00, Kodey.</i>]]></description>
			<link>http://proxmox.su/forum/messages/forum63/message334560/79071-snyat-disk-v-hookscript-posle-ostanovki.</link>
			<guid>http://proxmox.su/forum/messages/forum63/message334560/79071-snyat-disk-v-hookscript-posle-ostanovki.</guid>
			<pubDate>Fri, 27 Jun 2025 10:39:00 +0300</pubDate>
			<category>Proxmox Виртуальная Среда</category>
		</item>
		<item>
			<title>Снять диск в hookscript после остановки.</title>
			<description><![CDATA[<b><a href="http://proxmox.su/forum/messages/forum63/message334559/79071-snyat-disk-v-hookscript-posle-ostanovki.">Снять диск в hookscript после остановки.</a></b> <i>Proxmox Виртуальная Среда</i> в форуме <a href="http://proxmox.su/forum/forum63/">Proxmox Виртуальная Среда</a>. <br />
			Проверь комментарий выше. Эта строка закомментирована намеренно, потому что она не работает. Устройство пока не выпущено после периода задержек, и его пока нельзя отмонтировать. <br />
			<i>21.06.2025 15:32:00, freeDom-.</i>]]></description>
			<link>http://proxmox.su/forum/messages/forum63/message334559/79071-snyat-disk-v-hookscript-posle-ostanovki.</link>
			<guid>http://proxmox.su/forum/messages/forum63/message334559/79071-snyat-disk-v-hookscript-posle-ostanovki.</guid>
			<pubDate>Sat, 21 Jun 2025 15:32:00 +0300</pubDate>
			<category>Proxmox Виртуальная Среда</category>
		</item>
		<item>
			<title>Снять диск в hookscript после остановки.</title>
			<description><![CDATA[<b><a href="http://proxmox.su/forum/messages/forum63/message334558/79071-snyat-disk-v-hookscript-posle-ostanovki.">Снять диск в hookscript после остановки.</a></b> <i>Proxmox Виртуальная Среда</i> в форуме <a href="http://proxmox.su/forum/forum63/">Proxmox Виртуальная Среда</a>. <br />
			Разве это не стоило бы закомментировать? <br />
			<i>21.06.2025 08:30:00, Kodey.</i>]]></description>
			<link>http://proxmox.su/forum/messages/forum63/message334558/79071-snyat-disk-v-hookscript-posle-ostanovki.</link>
			<guid>http://proxmox.su/forum/messages/forum63/message334558/79071-snyat-disk-v-hookscript-posle-ostanovki.</guid>
			<pubDate>Sat, 21 Jun 2025 08:30:00 +0300</pubDate>
			<category>Proxmox Виртуальная Среда</category>
		</item>
		<item>
			<title>Снять диск в hookscript после остановки.</title>
			<description><![CDATA[<b><a href="http://proxmox.su/forum/messages/forum63/message334557/79071-snyat-disk-v-hookscript-posle-ostanovki.">Снять диск в hookscript после остановки.</a></b> <i>Proxmox Виртуальная Среда</i> в форуме <a href="http://proxmox.su/forum/forum63/">Proxmox Виртуальная Среда</a>. <br />
			Привет, у меня есть простой hookscript, чтобы убедиться, что необходимые точки монтирования для контейнеров монтируются на хосте при запуске. Монтирование работает как ожидалось, но размонтирование в фазе post-stop не работает. Триггер post-stop выполняется (я протестировал это, создав временный файл в фазе post-stop), но кажется, что ресурсы еще не освобождаются гостевой системой (см. <noindex><a href="https://forum.proxmox.com/threads/hookscript-wird-nicht-genutzt.151222/" target="_blank" rel="nofollow" >https://forum.proxmox.com/threads/hookscript-wird-nicht-genutzt.151222/</a></noindex> ). Что я могу сделать, чтобы правильно размонтировать диски после завершения работы контейнера, если нельзя использовать фазу hook post-stop? Разве это не должно быть правильным местом для этого?<br /><br />Код:<br />```<br />#!/usr/bin/perl<br /><br /># Пример hook script для PVE guests (hookscript config option)<br /># Можно установить это через pct/qm с<br /># pct set &lt;vmid&gt; -hookscript &lt;volume-id&gt;<br /># qm set &lt;vmid&gt; -hookscript &lt;volume-id&gt;<br /># где &lt;volume-id&gt; должен быть исполняемым файлом в папке snippets<br /># любого хранилища с директориями, например:<br /># qm set 100 -hookscript local:snippets/hookscript.pl<br /><br />use strict;<br />use warnings;<br /><br />print "GUEST HOOK: " . join(' ', @ARGV). "\n";<br /><br /># Первый аргумент - vmid<br /><br />my $vmid = shift;<br /><br /># Второй аргумент - фаза<br /><br />my $phase = shift;<br /><br />if ($phase eq 'pre-start') {<br /><br /> &nbsp; &nbsp;# Первая фаза 'pre-start' будет выполнена перед запуском гостевой<br /> &nbsp; &nbsp;# системы. Завершение с кодом != 0 приведет к отмене запуска<br /><br /> &nbsp; &nbsp;print "$vmid запускается, выполняются подготовки.\n";<br /> &nbsp; &nbsp;system("mount /mnt/lxc/$vmid/*");<br /><br /> &nbsp; &nbsp;# print "подготовки не удались, отмена."<br /> &nbsp; &nbsp;# exit(1);<br /><br />} elsif ($phase eq 'post-start') {<br /><br /> &nbsp; &nbsp;# Вторая фаза 'post-start' будет выполнена после того, как гостевая<br /> &nbsp; &nbsp;# система успешно запустится.<br /><br /> &nbsp; &nbsp;print "$vmid успешно запущен.\n";<br /><br />} elsif ($phase eq 'pre-stop') {<br /><br /> &nbsp; &nbsp;# Третья фаза 'pre-stop' будет выполнена перед остановкой гостевой<br /> &nbsp; &nbsp;# системы через API. Не будет выполнена, если гостевая система<br /> &nbsp; &nbsp;# остановлена изнутри, например, командой 'poweroff'.<br /><br /> &nbsp; &nbsp;print "$vmid будет остановлен.\n";<br /><br />} elsif ($phase eq 'post-stop') {<br /><br /> &nbsp; &nbsp;# Последняя фаза 'post-stop' будет выполнена после остановки гостевой.<br /> &nbsp; &nbsp;# Эта фаза должна выполняться даже в случае сбоя гостевой системы<br /> &nbsp; &nbsp;# или ее неожиданной остановки.<br /><br /> &nbsp; &nbsp;print "$vmid остановлен. Выполняется очистка.\n";<br /> &nbsp; &nbsp;# Сейчас не работает, потому что passthrough устройства освобождаются только после post-stop<br /> &nbsp; &nbsp;#system("umount /mnt/lxc/$vmid/*");<br /><br />} else {<br /> &nbsp; &nbsp;die "получена неизвестная фаза '$phase'\n";<br />}<br /><br />exit(0);<br />```<br />Вот мой /etc/fstab (удашены IP-адреса и точки монтирования):<br />```<br /># lxc file shares<br />//ipaddr/mountpoint1 /mnt/lxc/178/mountpoint1 cifs nofail,credentials=/root/.smbcredentials_1,uid=100000,gid=100000 0 0<br />//ipaddr/mountpoint2 /mnt/lxc/178/mountpoint2 cifs nofail,credentials=/root/.smbcredentials_1,uid=100000,gid=100000 0 0<br />//ipaddr/mountpoint3 /mnt/lxc/178/mountpoint3 cifs nofail,credentials=/root/.smbcredentials_1,uid=100000,gid=100000 0 0<br />//ipaddr/mountpoint4 /mnt/lxc/179/mountpoint4 cifs nofail,credentials=/root/.smbcredentials_1,uid=100000,gid=100000 0 0<br />//ipaddr/mountpoint5 /mnt/lxc/176/mountpoint5 cifs nofail,credentials=/root/.smbcredentials_2,uid=100000,gid=100000 0 0<br />```<br />Вот вывод журнала из journalctl -r:<br />```<br />Apr 02 13:51:37 hypercat systemd[1]: pve-container@179.service: Деактивирован успешно.<br />Apr 02 13:51:37 hypercat pct[303863]: &lt;root@pam&gt; завершение задачи UPID:hypercat:0004A2F9:00453686:67ED24C1:vzshutdown:179:root@&gt;<br />Apr 02 13:51:37 hypercat kernel: EXT4-fs (dm-21): размонтирование файловой системы 0ed234dc-aff3-4891-90f3-f8feafef1d33.<br />Apr 02 13:51:36 hypercat pvestatd[1248]: не удалось получить PID для CT 179 (не работает?).<br />Apr 02 13:51:36 hypercat kernel: audit: type=1400 audit(1743594696.243:77): apparmor="STATUS" operation="profile_remove&gt;<br />Apr 02 13:51:36 hypercat audit[304043]: AVC apparmor="STATUS" operation="profile_remove" profile="/usr/bin/lxc-start" n&gt;<br />Apr 02 13:51:29 hypercat pct[303865]: остановка CT 179: UPID:hypercat:0004A2F9:00453686:67ED24C1:vzshutdown:179:root@pam:<br />Apr 02 13:51:29 hypercat pct[303863]: &lt;root@pam&gt; запуск задачи UPID:hypercat:0004A2F9:00453686:67ED24C1:vzshutdown:179:&gt;<br />Apr 02 13:51:16 hypercat pct[303367]: &lt;root@pam&gt; завершение задачи UPID:hypercat:0004A108:004530A7:67ED24B2:vzstart:179:root@pam&gt;<br />Apr 02 13:51:15 hypercat kernel: audit: type=1400 audit(1743594675.617:76): apparmor="STATUS" operation="profile_load" &gt;<br />Apr 02 13:51:15 hypercat audit[303398]: AVC apparmor="STATUS" operation="profile_load" profile="/usr/bin/lxc-start" nam&gt;<br />Apr 02 13:51:15 hypercat kernel: EXT4-fs (dm-21): смонтирована файловая система 0ed234dc-aff3-4891-90f3-f8feafef1d33.<br />Apr 02 13:51:14 hypercat pct[303368]: запуск CT 179: UPID:hypercat:0004A108:004530A7:67ED24B2:vzstart:179:root@pam:<br />Apr 02 13:51:14 hypercat pct[303367]: &lt;root@pam&gt; запуск задачи UPID:hypercat:0004A108:004530A7:67ED24B2:vzstart:179:root@pam:<br />Apr 02 13:51:14 hypercat kernel: CIFS: Попытка смонтировать //ipaddr/mountpoint4<br />Apr 02 13:51:14 hypercat kernel: CIFS: включение опции forcegid mount явно, так как gid= указано.<br />Apr 02 13:51:14 hypercat kernel: CIFS: включение опции forceuid mount явно, так как uid= указано.<br />``` <br />
			<i>02.04.2025 14:38:00, freeDom-.</i>]]></description>
			<link>http://proxmox.su/forum/messages/forum63/message334557/79071-snyat-disk-v-hookscript-posle-ostanovki.</link>
			<guid>http://proxmox.su/forum/messages/forum63/message334557/79071-snyat-disk-v-hookscript-posle-ostanovki.</guid>
			<pubDate>Wed, 02 Apr 2025 14:38:00 +0300</pubDate>
			<category>Proxmox Виртуальная Среда</category>
		</item>
	</channel>
</rss>
