All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Bolle" <bolle@geodb.org>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: Starting QEMU by PHP/Apache
Date: Wed, 14 Oct 2009 07:12:56 +0200	[thread overview]
Message-ID: <web-1432056@x41.ch> (raw)
In-Reply-To: <web-1431679@x41.ch>

qemu-devel@nongnu.org
Re: Starting QEMU by PHP/Apache

Hello all

First, I forgot to say, that I use the QEMU stable version 
11.0 on a Gentoo box. I did some more testings. The QEMU 
instance is starting and sometimes the OS starts to load, 
but then QEMU stucks and consumes 100% CPU.

I checked the startup it with strace. The start of QEMU 
itself produces the same output in strace, regardless if 
started by the PHP CLI or by mod_php from Apache.

I then attached strace to the QEMU process, and there is a 
big difference.

When starting QEMU with the PHP script from the CLI (as 
the same user as the web server), it works and I get 
something like that:
...
select(12, [6 11], [], [], {4, 993369}) = ? ERESTARTNOHAND 
(To be restarted)
--- SIGALRM (Alarm clock) @ 0 (0) ---
write(7, "\0"..., 1)                    = 1
sigreturn()                             = ? (mask now [])
clock_gettime(CLOCK_MONOTONIC, {2818001, 146485529}) = 0
clock_gettime(CLOCK_MONOTONIC, {2818001, 146548886}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 
0
timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 
250000}}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {2818001, 146758750}) = 0
clock_gettime(CLOCK_MONOTONIC, {2818001, 146819115}) = 0
clock_gettime(CLOCK_MONOTONIC, {2818001, 146879549}) = 0
clock_gettime(CLOCK_MONOTONIC, {2818001, 146938839}) = 0
--- SIGALRM (Alarm clock) @ 0 (0) ---
write(7, "\0"..., 1)                    = 1
sigreturn()                             = ? (mask now [])
...

If QEMU has been started by the web server with the same 
script and user, I get:
...
select(11, [5 10], [], [], {3, 767239}) = 0 (Timeout)
clock_gettime(CLOCK_MONOTONIC, {2817617, 818297714}) = 0
clock_gettime(CLOCK_MONOTONIC, {2817617, 818382772}) = 0
clock_gettime(CLOCK_MONOTONIC, {2817617, 818444894}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 
0
timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 
250000}}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {2817617, 818698197}) = 0
clock_gettime(CLOCK_MONOTONIC, {2817617, 818759263}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 
67453}}) = 0
clock_gettime(CLOCK_MONOTONIC, {2817617, 818894002}) = 0
clock_gettime(CLOCK_MONOTONIC, {2817617, 818954673}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 
0
timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 
250000}}, NULL) = 0
...

There are no SIGALRM executed. What can be the reason for 
that ?

Andreas



On Tue, 13 Oct 2009 13:26:25 +0200
  "Bolle" <bolle@geodb.org> wrote:
> Hello
> 
> Did anybody had success to start a QEMU instance by a 
>PHP script under the Apache web server ?
> 
> I allow the Apache user with the help of sudoers to 
>start the QEMU binary as root. I've hacked the 
>"qemu-socket.c" to set the access mode to allow 
>communication for the monitor socket (only add 
>"chmod(path, <needed file mode bits>)").
> 
> I'm able to successfully start the QEMU instance from a 
>PHP CLI script as the user under which Apache is running 
>like "sudo -u <Apache user> sudo <qemu + args>". But when 
>I run the same script by the web server, QEMU starts up 
>to the BIOS, telling me to press F12 for a start device. 
>The "info cpus" tells "CPU #0: pc=0x000f08b5 (halted)".
> 
> The full command executed by PHP is:
> /usr/bin/sudo /usr/bin/qemu -L /usr/share/qemu -M isapc 
>-m 16 -hda </path/and/name/to/image> -net none -serial 
>none -parallel none -vnc :0,password -monitor 
>unix:</path/and/name/to/socket>,server,nowait -name "QEMU 
>TEST" -pidfile </path/and/name/to/pid> -chroot 
></path/to/image> -runas <service user> > /dev/null &
> 
> Any idea about where to look for more information ?
> 
> Andreas

  parent reply	other threads:[~2009-10-14  5:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-13 11:26 [Qemu-devel] Starting QEMU by PHP/Apache Bolle
2009-10-13 13:12 ` François Revol
2009-10-14  5:12 ` Bolle [this message]
2009-10-16  4:49   ` [Qemu-devel] Re: [REASON][PATCH-REQUEST] " Bolle
2009-10-20 10:10 ` [Qemu-devel] " Richard W.M. Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=web-1432056@x41.ch \
    --to=bolle@geodb.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.