Question: I need to send frequently a lot of files to a multiple hosts and is crucial to be fast and I want it to do it in parallel.

how can I run in a bash script a parallel rsync to multiple hosts?

now the script looks like this

```
   for i in ${listofhosts[*]}
   do
   rsync -rv --checksum  folder/ -e "ssh -i rsa_key -o 
   StrictHostKeyChecking=no" user@$i:/var/test/folder --delete  || 
   exit 1
   done

```

LE: I'm thinking of something with **GNU Parallel** or **xargs** but I don't know how to use them in this situation

Answer: 
This is happening because MSAL automatically refreshes your token after expiration. When user opens your app it checks if that token is already present and valid. So you can remove the token from the Android KeyStore in onStop().

So yes you also need to remove the cache as well to remove the account from the cache, find the account that need to be removed and then call `PublicClientApplication.removeAccount()`

```
Set<IAccount> accounts = pca.getAccounts().join();

IAccount accountToBeRemoved = accounts.stream().filter(
 x -> x.username().equalsIgnoreCase(
UPN_OF_USER_TO_BE_REMOVED)).findFirst().orElse(null);
pca.removeAccount(accountToBeRemoved).join();

```

Read more [here](https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-java-get-remove-accounts-token-cache#remove-accounts-from-the-cache).
On Android we basically don't have any control on the cookies because they are shared with external Chrome app and because of that it is not accessible. If you want the user to enter the password again then you should do this: `AcquireTokenInteractive(scopes).WithPrompt(Prompt.ForceLogin);`