Эта проблема наконец-то исправлена в Skype 4.0.0.7 для Linux. Это делает вопрос устаревшим для каждого, кто установил Skype прямо с сайта. Версия 4.0+ будет включена в репозитории юниверсов для Quantal (Ubuntu 12.10).
Просто немного излишнего раздражения, чтобы исправить это:
Предположим, у вас работает Skype для Ubuntu. Вы случайно нажимаете на лаунчер снова. Теперь Skype запускает второй экземпляр, который быстро сообщает, что не может войти в систему. Уже запущен другой экземпляр. Что еще хуже: при следующем регулярном запуске Skype вам потребуется повторно ввести сохраненный пароль из-за «Ошибка входа».
Я думал, что это будет исправлено в ближайшее время, но ни Canonical, ни Microsoft не заботятся достаточно. Раздражение продолжает существовать как минимум для последних трех обновлений. Таким образом, в подходе к решению проблемы я опубликую то, что я сделал, чтобы предотвратить такое поведение. Может быть, это полезно для некоторых из вас. Может быть, это повысит осведомленность и приведет к исправлению.
Я рад за лучшее решение, кстати. и это реальная цель моего вопроса. Обычно я не отвечаю на них сам. Так кто-нибудь знает лучшее решение для исправления двойного использования Skype?
Итак, вот что я сделал, чтобы запретить Skype запуск другого экземпляра:
Я переименовал исполняемый файл:
mv /usr/bin/skype /usr/bin/skype.bin
Исходный исполняемый файл Skype будет связан со сценарием, который Скайп запускается только в том случае, если другой экземпляр не запущен (здесь - мягкая ссылка). Вот небольшой сценарий, который я назвал skype-wrapper.sh
. Он проверяет, запущен ли уже пользователь 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
Вы можете связать его с исходным именем исполняемого файла Skype, например:
ln -s /home/con-f-use/bin/skype-wrapper.sh /usr/bin/skype
Это, конечно, имеет один недостаток: После обновления Skype необходимо повторить переименование исполняемого файла и связывание скрипта.
Опять же, откройте для лучшего решения или даже для исправления самого Skype (глядя на вас, Microsoft: -)
Редактировать: Как сказано в комментариях, была небольшая проблема с иконкой уведомлений скайпа (щелчок по нему не переключал бы скрытие / отображение окна Skype). Теперь это исправлено (и протестировано с Ubuntu 10.04, 11.04 и 12.04).
Edit2: в последней версии с сайта www.skype.com (на момент написания статьи это было 4.0.0.7), в отличие от той, которая в настоящее время находится в репозиториях, ошибка исправлена. Я ожидаю, что исправленная версия в какой-то момент найдет свой путь в репозитории Ubuntu.