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
next prev 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).