Proceso de larga ejecución definido como Servicio

0

Creé un servicio para iniciar una caja virtual sin cabeza, que funciona bien, pero el servicio no termina hasta que la máquina virtual se detiene nuevamente (la rueda giratoria está en la barra de menú (o lo que sea la barra en la parte superior derecha es llamado).

Esto es comprensible, ya que el comando se ejecuta hasta que la máquina virtual se cierre de nuevo.

Intenté agregar "&", usando "nohup", "exec", pero aún así, la "rueda giratoria" no desaparece hasta que la caja virtual se cierra de nuevo.

También intenté crear una aplicación de automatización, pero igual.

¿Hay alguna forma de poner en segundo plano el comando, separarlo o hacer que al menos la rueda giratoria desaparezca?

EDITAR:

Aquí está el plist:

?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>NSServices</key>
        <array>
                <dict>
                        <key>NSMenuItem</key>
                        <dict>
                                <key>default</key>
                                <string>VBox Start Headless Ubuntu</string>
                        </dict>
                        <key>NSMessage</key>
                        <string>runWorkflowAsService</string>
                </dict>
        </array>
</dict>
</plist>

Y una captura de pantalla:

    
pregunta Rainer 29.03.2015 - 17:02

1 respuesta

1

Si desea crear un servicio a pedido, cree un servicio con Automator e ingrese

/usr/bin/VBoxManage startvm "Ubuntu" headless &

con la misma configuración que en tu captura de pantalla y eso es todo.

Y aquí hay un buen icono para que el servicio elimine el predeterminado:

Coipyypégaloenlaventanadeinformación.

Sideseainiciarloaliniciarsesión,creeunscriptdeshellenalgúnlugardesucarpetadeUsuarioyhagaunalistaen~/Library/LaunchAgents:

IniciaTerminaleingresa:

mkdir~/bincd~/bintouchvboxmanage.ubuntu.shchmod755vboxmanage.ubuntu.sh

Useuneditordetextoonanoparaeditarelscriptyagregar:

#!/bin/sh/usr/bin/VBoxManagestartvm"Ubuntu" headless

Luego cree un archivo plist en ~ / Library / LaunchAgents con el nombre com.vboxmanage.ubuntu.plist y el contenido:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.vboxmanage.ubuntu.plist</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/YourUserName/bin/vboxmanage.ubuntu.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>LaunchOnlyOnce</key>
    <true/>
</dict>
</plist>

Modificar el archivo:

chmod 644 ~/Library/LaunchAgents/com.vboxmanage.ubuntu.plist

y ejecútalo con:

launchctl load ~/Library/LaunchAgents/com.vboxmanage.ubuntu.plist

Posteriormente, la VM se iniciará después de cada inicio de sesión en su cuenta

    
respondido por el klanomath 29.03.2015 - 18:54

Lea otras preguntas en las etiquetas