Processo a lungo termine definito come servizio

0

Ho creato un servizio per l'avvio di una Virtual Box senza testa, che funziona bene - ma il servizio non termina fino a quando la macchina virtuale non viene fermata di nuovo (la ruota girevole è nella barra dei menu (o qualunque sia la barra in alto a destra) chiamato).

Questo è comprensibile, poiché il comando viene eseguito finché la VM non viene chiusa nuovamente.

Ho provato ad aggiungere "&", usando "nohup", "exec", ma ancora, la "rotella" non scompare fino a quando la casella virtuale non viene chiusa di nuovo.

Ho anche provato a creare un'applicazione per l'automazione, ma la stessa.

C'è un modo per eseguire lo sfondo del comando, per staccarlo o per far sparire almeno la ruota che gira?

EDIT:

Ecco il 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>

E uno screenshot:

    
posta Rainer 29.03.2015 - 17:02
fonte

1 risposta

1

Se desideri creare un servizio su richiesta, crea un servizio con Automator e inserisci

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

con le stesse impostazioni dello screenshot e basta.

Ed ecco una bella icona per il servizio per eliminare quella predefinita:

Coipyeincollalonellafinestrainformativa.

Sevuoiavviarloalmomentodellogin,creaunoscriptdishelldaqualchepartenellacartellaUtenteeunplistin~/Library/LaunchAgents:

Avviaterminaleeinserisci:

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

Utilizzauneditorditestoonanopermodificareloscripteaggiungi:

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

Quindi crea un file plist in ~ / Library / LaunchAgents con il nome com.vboxmanage.ubuntu.plist e il contenuto:

<?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>

Modifica il file:

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

e avvialo con:

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

Successivamente la VM verrà avviata dopo ogni accesso al tuo account

    
risposta data 29.03.2015 - 18:54
fonte

Leggi altre domande sui tag