2016-05-22 16 views
2

Nachdem Sie sich online umgeschaut haben, scheint es ziemlich einfach zu sein, mehrere Dropbox-Konten laufen zu lassen. Alles, was Sie tun müssen, ist eine Umgebungsvariable zu ändern und dann Dropbox zu starten. Ich habe jedoch versucht, die .desktop-Datei bearbeiten (siehe .desktop file specification), so dass die Exec Linie von dieser geändert wird:Wie - mehrere Dropbox-Instanzen in Linux?

Exec=dropbox start -i 

die Standardeinstellung ist, dazu:

Exec=env "HOME\=/home/reg/.dropbox-alt" dropbox start -i 

von allem was ich gelesen haben sollte funktionieren. Ich habe auch alle Varianten des Entkommens und Zitate wie versucht:

und nichts scheint Dropbox zu starten. Wenn ich jedoch die selbe Zeile in bash versuche, versucht es zu starten, fällt aber unter, aber das liegt nur daran, dass Dropbox nach einer GUI sucht. In diesem Fall hätte ich gedacht, dass das oben beschriebene in der .desktop-Datei funktionieren würde, aber ich bekomme gar nichts.

Ich mache dies ohne irgendwelche Dropbox-Instanzen bereits ausgeführt, so kann es nicht sein, dass Dropbox nach anderen Instanzen sucht und sich selbst daran hindert, eine andere Instanz zu laden.

Wenn ich versuche, dies in der .desktop-Datei:

Exec=env dropbox start -i 

Es wird Dropbox zu starten, aber jetzt ist es die Standardinstanz, die keinen Nutzen hat.

Kann mir jemand sagen, was ich vermisse, um diese Arbeit zu machen?

Antwort

2
#!/bin/bash 

HOME_DIR=$HOME 
DROPBOXES=("$HOME/.dropboxes/personal" "$HOME/.dropboxes/business") 
function start_dropbox() { 
    HOME=$HOME_DIR 
    local flag 
    local home_dir 
    local OPTIND; 
    local verbose=0 
    local wait=0 

    while getopts p:vw opt; do 
    case $opt in 
     p) home_dir="$(echo $OPTARG | sed 's:/*$::')/" ;; 
     v) verbose=1 ;; 
     w) wait=1 ;; 
     *) ;; 
    esac 
    done 
    shift $((OPTIND-1)) 

    # Test if the process is already running 
    local pid=$(ps aux|grep "${home_dir}.dropbox-dist"|grep -v 'grep'|tr -s ' '| cut -d' ' -f 2) 
    if [ -n "$pid" ] 
    then 
    echo "Process already running with home dir. of: $home_dir" 
    return 8 # Process already running 
    fi 

    # Create home directory if it doesn't exist 
    if [ ! -e "$home_dir" ] 
    then 
    if mkdir -p "$home_dir"; 
    then 
     echo "Created directory: $home_dir" 
    else 
     echo "Failed to create directory: $home_dir" 
     return 9 # Failed 
    fi 
    fi 

    # Set up so works with GUI from command line 
    xauthority="${home_dir}.Xauthority" 
    if [ ! -e "$xauthority" ] 
    then 
    ln -s "$HOME/.Xauthority" "$xauthority" 
    fi 

    HOME="$home_dir" 

    # Start the dropbox daemon 
    if [[ $verbose -gt 0 ]]; then 
    echo '~/.dropbox-dist/dropboxd & '$home_dir 
    fi 
    ~/.dropbox-dist/dropboxd & 
    if [[ $wait -eq 0 ]]; then 
    sleep 2 # Give each instance time to startup completely before starting another one 
    else 
    read -n 1 -s -p 'Press any key to continue.' 
    echo 
    fi 
} 

function start_dropboxes() { 
    local dropbox 

    for dropbox in "${DROPBOXES[@]}" 
    do 
    start_dropbox [email protected] -p "$dropbox" 
    done 
} 

# 
# For testing & setup we can choose just one to startup 
# 
while getopts f:wv opt; do 
    case $opt in 
    f) start_dropbox -p "${DROPBOXES[$OPTARG]}" # NOTE: bash array indexes start at 0. 
     exit ;; 
    *) ;; 
    esac 
done 
OPTIND=1 

start_dropboxes [email protected] 
+0

geändert zu #!/Bin/bash, damit es auf Mint funktioniert. – nolazybits

3

Öffnen Sie ein Terminal und fügen Sie die folgenden Befehle:

$ mkdir "$HOME"/.dropbox-alt 
$ ln -s "$HOME/.Xauthority" "$HOME/.dropbox-alt/" 
$ HOME="$HOME/.dropbox-alt" 
$ /home/$USER/.dropbox-dist/dropboxd 

Dropbox Setup-Assistent Fenster erscheint. Beenden Sie das Setup in ähnlicher Weise wie in dem Verfahren beschrieben -1

Start Dropbox von Terminal

$ /home/$USER/.dropbox-dist/dropboxd 

Start Alternate-Dropbox von Terminal

$ HOME="$HOME/.dropbox-alt" && /home/$USER/.dropbox-dist/dropboxd 

Hinweis:

You can create a small script with the above commands to start Dropbox. 
One can put the script at startup. Don't forget to give the script execution permission. 

chmod +x /path/to/script 

I have tested the second method. Hope it will be useful. 
+0

Diese funktioniert, das ist großartig, aber ich wollte es wirklich wissen wie man es mit dem Desktop-Dateityp funktioniert. Ich habe eine Verfeinerung dieser Methode, die ich in Kürze veröffentlichen werde. – user5429087

Verwandte Themen