mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-07 07:36:02 +00:00
updates for vzctl 4.0
This commit is contained in:
parent
4d37f8b41e
commit
f9d4fc64e2
@ -864,7 +864,11 @@ __PACKAGE__->register_method ({
|
|||||||
my $remcmd = $remip ?
|
my $remcmd = $remip ?
|
||||||
['/usr/bin/ssh', '-c', 'blowfish-cbc', '-t', $remip] : [];
|
['/usr/bin/ssh', '-c', 'blowfish-cbc', '-t', $remip] : [];
|
||||||
|
|
||||||
my $shcmd = [ '/usr/sbin/vzctl', 'enter', $vmid ];
|
mkdir "/var/run/dtach";
|
||||||
|
my $shcmd = [ '/usr/bin/dtach', '-A',
|
||||||
|
"/var/run/dtach/vzctlconsole$vmid",
|
||||||
|
'-r', 'winch', '-z',
|
||||||
|
'/usr/sbin/vzctl', 'console', $vmid ];
|
||||||
|
|
||||||
my $realcmd = sub {
|
my $realcmd = sub {
|
||||||
my $upid = shift;
|
my $upid = shift;
|
||||||
|
47
bin/pvestatd
47
bin/pvestatd
@ -6,7 +6,7 @@ use POSIX ":sys_wait_h";
|
|||||||
use Fcntl ':flock';
|
use Fcntl ':flock';
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
use Time::HiRes qw (gettimeofday);
|
use Time::HiRes qw (gettimeofday);
|
||||||
use PVE::Tools;
|
use PVE::Tools qw(dir_glob_foreach file_read_firstline);
|
||||||
use PVE::ProcFSTools;
|
use PVE::ProcFSTools;
|
||||||
use Filesys::Df;
|
use Filesys::Df;
|
||||||
use PVE::INotify;
|
use PVE::INotify;
|
||||||
@ -199,6 +199,45 @@ sub update_qemu_status {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub find_vzctl_console_pids {
|
||||||
|
|
||||||
|
my $res = {};
|
||||||
|
|
||||||
|
dir_glob_foreach('/proc', '\d+', sub {
|
||||||
|
my ($pid) = @_;
|
||||||
|
|
||||||
|
my $cmdline = file_read_firstline("/proc/$pid/cmdline");
|
||||||
|
return if !$cmdline;
|
||||||
|
|
||||||
|
my @args = split(/\0/, $cmdline);
|
||||||
|
|
||||||
|
# serach for vzctl console <vmid>
|
||||||
|
return if scalar(@args) != 3;
|
||||||
|
return if $args[1] ne 'console';
|
||||||
|
return if $args[2] !~ m/^\d+$/;
|
||||||
|
return if $args[0] !~ m|^(/usr/sbin/)?vzctl$|;
|
||||||
|
|
||||||
|
my $vmid = $args[2];
|
||||||
|
|
||||||
|
push @{$res->{$vmid}}, $pid;
|
||||||
|
});
|
||||||
|
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
sub remove_stale_openvz_consoles {
|
||||||
|
|
||||||
|
my $vmstatus = PVE::OpenVZ::vmstatus();
|
||||||
|
my $pidhash = find_vzctl_console_pids();
|
||||||
|
|
||||||
|
foreach my $vmid (keys %$pidhash) {
|
||||||
|
next if defined($vmstatus->{$vmid});
|
||||||
|
syslog('info', "remove stale vzctl console for CT $vmid");
|
||||||
|
foreach my $pid (@{$pidhash->{$vmid}}) {
|
||||||
|
kill(9, $pid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub update_openvz_status {
|
sub update_openvz_status {
|
||||||
|
|
||||||
my $ctime = time();
|
my $ctime = time();
|
||||||
@ -281,6 +320,12 @@ sub update_status {
|
|||||||
};
|
};
|
||||||
$err = $@;
|
$err = $@;
|
||||||
syslog('err', "storage status update error: $err") if $err;
|
syslog('err', "storage status update error: $err") if $err;
|
||||||
|
|
||||||
|
eval {
|
||||||
|
remove_stale_openvz_consoles();
|
||||||
|
};
|
||||||
|
$err = $@;
|
||||||
|
syslog('err', "openvz console cleanup error: $err") if $err;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $next_update = 0;
|
my $next_update = 0;
|
||||||
|
12
debian/changelog.Debian
vendored
12
debian/changelog.Debian
vendored
@ -1,3 +1,15 @@
|
|||||||
|
pve-manager (2.2-20) unstable; urgency=low
|
||||||
|
|
||||||
|
* openvz: use real console instead of 'vzctl enter'
|
||||||
|
|
||||||
|
* openvz: remove init-logger pagers
|
||||||
|
|
||||||
|
* dpenend on dtach (used by openvz console)
|
||||||
|
|
||||||
|
* pvestatd: remove stale 'vzctl console' processes
|
||||||
|
|
||||||
|
-- Proxmox Support Team <support@proxmox.com> Tue, 02 Oct 2012 06:49:12 +0200
|
||||||
|
|
||||||
pve-manager (2.2-19) unstable; urgency=low
|
pve-manager (2.2-19) unstable; urgency=low
|
||||||
|
|
||||||
* fix bug 178: use new API call to get next free VMID
|
* fix bug 178: use new API call to get next free VMID
|
||||||
|
2
debian/control.in
vendored
2
debian/control.in
vendored
@ -3,7 +3,7 @@ Version: @VERSION@-@PACKAGERELEASE@
|
|||||||
Section: admin
|
Section: admin
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Depends: perl5, libtimedate-perl, apache2-mpm-prefork, libauthen-pam-perl, libintl-perl, rsync, libapache2-request-perl, libjson-perl, liblockfile-simple-perl, vncterm, qemu-server (>= 1.1-1), libwww-perl, wget, libnet-dns-perl, vlan, ifenslave-2.6 (>= 1.1.0-10), liblinux-inotify2-perl, debconf (>= 0.5) | debconf-2.0, netcat-traditional, pve-cluster, libpve-common-perl, libpve-storage-perl, libterm-readline-gnu-perl, libpve-access-control, libio-socket-ssl-perl, libfilesys-df-perl, libfile-readbackwards-perl, libfile-sync-perl, redhat-cluster-pve, resource-agents-pve, fence-agents-pve, cstream, mail-transport-agent, libxml-parser-perl, perl-suid, lzop
|
Depends: perl5, libtimedate-perl, apache2-mpm-prefork, libauthen-pam-perl, libintl-perl, rsync, libapache2-request-perl, libjson-perl, liblockfile-simple-perl, vncterm, qemu-server (>= 1.1-1), libwww-perl, wget, libnet-dns-perl, vlan, ifenslave-2.6 (>= 1.1.0-10), liblinux-inotify2-perl, debconf (>= 0.5) | debconf-2.0, netcat-traditional, pve-cluster, libpve-common-perl, libpve-storage-perl, libterm-readline-gnu-perl, libpve-access-control, libio-socket-ssl-perl, libfilesys-df-perl, libfile-readbackwards-perl, libfile-sync-perl, redhat-cluster-pve, resource-agents-pve, fence-agents-pve, cstream, mail-transport-agent, libxml-parser-perl, perl-suid, lzop, dtach
|
||||||
Conflicts: netcat-openbsd, vzdump
|
Conflicts: netcat-openbsd, vzdump
|
||||||
Replaces: vzdump
|
Replaces: vzdump
|
||||||
Provides: vzdump
|
Provides: vzdump
|
||||||
|
@ -2,7 +2,7 @@ RELEASE=2.2
|
|||||||
|
|
||||||
VERSION=2.2
|
VERSION=2.2
|
||||||
PACKAGE=pve-manager
|
PACKAGE=pve-manager
|
||||||
PACKAGERELEASE=19
|
PACKAGERELEASE=20
|
||||||
|
|
||||||
BINDIR=${DESTDIR}/usr/bin
|
BINDIR=${DESTDIR}/usr/bin
|
||||||
PERLLIBDIR=${DESTDIR}/usr/share/perl5
|
PERLLIBDIR=${DESTDIR}/usr/share/perl5
|
||||||
|
@ -360,7 +360,7 @@ Ext.define('PVE.OpenVZConsole', {
|
|||||||
{
|
{
|
||||||
text: gettext('Start'),
|
text: gettext('Start'),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
vm_command("start", {}, 1);
|
vm_command("start");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -387,14 +387,7 @@ Ext.define('PVE.OpenVZConsole', {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// Note: no migrate here, because we can't display migrate log
|
// Note: no migrate here, because we can't display migrate log
|
||||||
// and openvz migrate does not work if console is open
|
|
||||||
{
|
|
||||||
text: gettext('Console'),
|
|
||||||
handler: function() {
|
|
||||||
PVE.Utils.openConoleWindow('openvz', me.vmid, me.nodename, me.vmname);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'->',
|
'->',
|
||||||
{
|
{
|
||||||
text: gettext('Refresh'),
|
text: gettext('Refresh'),
|
||||||
|
@ -152,16 +152,6 @@ Ext.define('PVE.openvz.Config', {
|
|||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
if (caps.vms['VM.Console']) {
|
|
||||||
me.items.push({
|
|
||||||
title: "InitLog",
|
|
||||||
itemId: 'initlog',
|
|
||||||
xtype: 'pveLogView',
|
|
||||||
url: '/api2/extjs/nodes/' + nodename + '/openvz/' + vmid + '/initlog'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (caps.vms['VM.Backup']) {
|
if (caps.vms['VM.Backup']) {
|
||||||
me.items.push({
|
me.items.push({
|
||||||
title: gettext('Backup'),
|
title: gettext('Backup'),
|
||||||
|
Loading…
Reference in New Issue
Block a user