Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Update

This problem is finally fixed with Skype 4.0.0.7 for Linux. This makes the question obsolete for every one who installed Skype directly from the website. Version 4.0+ will be included in the universe repositories for Quantal (Ubuntu 12.10).


Annoying Skype but (Another Skype instance may exist)

Just a little unnecessary annoyance to fix here:

Suppose you have Skype for Ubuntu running. You accidentally click on the launcher again. The way it is now, Skype starts a second instance, which promptly tells you it can't log in. There is another instance already running. To make things worse: On the next regular start of Skype it you will have to re-enter your saved password, due to the "Sign in failure".

I thought this would be fixed soon but neither Canonical nor Microsoft care enough. The annoyance continues to exist for the last three updates at least. So in an approach to provide a workaround I will post what I've done to prevent this behaviour. Maybe it's useful for some of you. Maybe it will rise awareness and cause a fix.

I'm happy for any better solution btw. and that's the real purpose of my question. Usually I don't answer them myself. So doesn anyone know of a better solution to fix dual instancing of Skype?

share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

So here is what I have done to prevent Skype from starting another instance:

I have renamed the executable:

mv /usr/bin/skype /usr/bin/skype.bin

The original skype executable will be linked to a script that only starts skype if no other instance is running (here a softlink). Here is the small script that I called skype-wrapper.sh. It checks if the user is already running skype:

#!/bin/bash
# Use this instead of the Skype executable in '/usr/bin/skype' to prevent
# Skype from running another instance. Rename the executable to 'skype.bin'
# beforehand.

if [ $# -gt 0 ]; then
    /usr/bin/skype.bin $@
elif [ ! -n "$(lsof /usr/bin/skype.bin | grep $USER)" ]; then
    /usr/bin/skype.bin 
fi

You can link it to the original name of the skype executable like this:

ln -s /home/con-f-use/bin/skype-wrapper.sh /usr/bin/skype

That of course has one drawback: After a Skype update one has to redo the renaming of the executable and linking of the script.

Again, open for a better solution or even a fix of Skype itself (looking at you Microsoft :-)

Edit: As said in the comments, there was a minor problem with the notification icon of skype (a click on it wouldn't toggle hide/display of the Skype window). That is now fixed (and tested with Ubuntu 10.04, 11.04 and 12.04).

Edit2: With the latest version from www.skype.com (by the time of writing it was 4.0.0.7), as opposed to the one currently in the repositories, the error is fixed. I expect that the fixed version at some point will find it's way into the Ubuntu repositories.

share|improve this answer
    
Thanks, I will use your workaround as the I am annoyed by the same problem. –  seb Jun 25 '12 at 22:56
    
somehow this seems to change the Skype behaviour of the panel –  seb Jun 26 '12 at 0:07
    
I edited the above script. That fixed the panel problems for me but my setup might be a bit peculiar. If it works for you too, please tell :) –  con-f-use Jun 26 '12 at 16:48
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.