From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57285) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZgT5u-0002KA-5v for qemu-devel@nongnu.org; Mon, 28 Sep 2015 03:43:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZgSs5-0000Zm-M7 for qemu-devel@nongnu.org; Mon, 28 Sep 2015 03:29:35 -0400 Received: from mx1.redhat.com ([209.132.183.28]:44971) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZgSs5-0000Yy-DZ for qemu-devel@nongnu.org; Mon, 28 Sep 2015 03:29:13 -0400 From: Markus Armbruster References: <87E5D202-0E71-426D-807A-A0737EF07158@gmail.com> <20150928023046.4417.51660@loki> <371B9FFB-14FD-4707-9094-29EC9F6B508F@gmail.com> Date: Mon, 28 Sep 2015 09:29:09 +0200 In-Reply-To: <371B9FFB-14FD-4707-9094-29EC9F6B508F@gmail.com> (Programmingkid's message of "Sun, 27 Sep 2015 23:10:33 -0400") Message-ID: <87vbavm27u.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] feature idea: allow user to run custom scripts List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Programmingkid Cc: Peter Maydell , Peter Crosthwaite , Michael Roth , qemu-devel qemu-devel Programmingkid writes: > On Sep 27, 2015, at 10:30 PM, Michael Roth wrote: > >> Quoting Programmingkid (2015-09-27 20:49:24) >>> >>> On Sep 27, 2015, at 2:53 PM, Peter Crosthwaite wrote: >>> >>>> On Sun, Sep 27, 2015 at 3:13 AM, Peter Maydell >>>> wrote: >>>>> On 27 September 2015 at 04:39, Programmingkid >>>>> wrote: >>>>>> Would you be open to a feature that allows the user to select >>>>>> and run a custom file that has commands in it that would run >>>>>> in the monitor? >>>>> >>>>> Sounds like a VM management layer feature. >>>>> >>>> >>>> Should -monitor file:/foo/bar do something like this? >>> >>> If you are saying this command line argument loads monitor commands, >>> then it would only work when QEMU is first started. The feature I want >>> would work anytime during the running of QEMU. >> >> For that sort of flexibility I think writing commands to a socket via >> a script/program is simple enough that an additional interface doesn't >> seem worthwhile. Even our qtest unit tests use this approach. Plus you >> get the flexibility of a being able to branch based on the return >> value of commands (error-handling, stateful commands, incorporating >> output from a serial console, etc.). It seems like a nice feature but >> it's vastly inferior to what's possible with an external driver. > > How many people know how to communicate with QEMU via a socket? > How do you even do it? It doesn't sound very easy to do. It's easy, as QEMU command line goes: -qmp unix:test-hmp,server,nowait This is syntactic sugar for something like -chardev socket,id=compat_monitor1,path=sock-qmp,server=on,wait=off -mon mode=control,chardev=compat_monitor1 The long form is more flexible. If you use it, don't use id=compat_monitor1, obviously. Easier on the eyes as configuration file for -readconfig: [chardev "qmp"] backend = "socket" path = "sock-qmp" server = "on" wait = "off" [mon "qmp"] mode = "control" chardev = "qmp" > A menu item > that displays a file open dialog is very easy to use. The user just selects > a file and QEMU loads and runs all the commands in it. This feature > would make QEMU easier to use. It would also make QEMU easily > expandable. Typing long commands in the monitor is difficult and > error prone. Saving these commands in a file would make it much > easier for the user. An example command someone could put in a > file is sending Control-Alt-Delete to the emulator. Another command > could be mounting an image file. This feature would make things > much easier for the user. You didn't mention you're talking about a *GUI* feature.