9acce13a35
qubes.VMShell service, used by qvm-run, expects the command on the first input line. Previously, when --localcmd was used, the command wasn't written anywhere and the local command was connected directly to qubes.VMShell service. And the first line of its output was interpreted as a command. Fix this by starting the local command separately, after sending the command to qubes.VMShell service. While at it, unify handling shell command and service calls in the process. vm.run_service(..., localcmd= ) isn't that useful in general case, because for qubes.VMShell the caller first need to send the command before starting local process. Since the qvm-run tool needs to implement manual starting localcmd anyway, don't use localcmd= run_service's argument at all to unify calling methods. There is slight behavior change: previously localcmd was started only after establishing service connection (for example only if qrexec policy allows), now it is started in all the cases. Fixes QubesOS/qubes-issues#4040 |
||
---|---|---|
.. | ||
__init__.py | ||
init.py | ||
qubes_prefs.py | ||
qvm_backup_restore.py | ||
qvm_backup.py | ||
qvm_check.py | ||
qvm_clone.py | ||
qvm_create.py | ||
qvm_device.py | ||
qvm_features.py | ||
qvm_firewall.py | ||
qvm_kill.py | ||
qvm_ls.py | ||
qvm_pause.py | ||
qvm_pool.py | ||
qvm_prefs.py | ||
qvm_remove.py | ||
qvm_run.py | ||
qvm_service.py | ||
qvm_shutdown.py | ||
qvm_start_gui.py | ||
qvm_start.py | ||
qvm_tags.py | ||
qvm_template_postprocess.py | ||
qvm_unpause.py | ||
qvm_volume.py |