$ strawberry
17:50:33.254 INFO main:165 Strawberry is already running - activating existing window (1)
17:50:38.256 WARN unknown Connection timed out
17:50:38.256 ERROR main:168 Could not send message to primary instance.
何らかの理由で、Strawberryはインスタンスが実行中であると考え、接続がタイムアウトしました。何も実行されていないからです。
rootで起動しようとしました(ただし音が出ないので、rootで実行するのはとにかく解決策ではありません)。
Strawberry自体を含め、Strawberryに関連するすべてのファイルが消去されましたが、新しくインストールした後もエラーは続きました。
$ strawberry --version
Strawberry 1.0.23
$ pgrep -f strawberry
(no output)
$ ps aux | grep '[s]trawberry'
(no output)
$ cat /etc/os-release command
NAME="Linux Mint"
VERSION="21.2 (Victoria)"
ID=linuxmint
ID_LIKE="ubuntu debian"
PRETTY_NAME="Linux Mint 21.2"
VERSION_ID="21.2"
VERSION_CODENAME=victoria
UBUNTU_CODENAME=jammy
コードでこのエラーメッセージを見つけましたが、問題を解決するのには役に立ちませんでした。
https://github.com/strawberrymusicplayer/strawberry/blob/master/src/main.cpp
CommandlineOptions options(argc, argv);
{
// Only start a core application now, so we can check if there's another instance without requiring an X server.
// This MUST be done before parsing the commandline options so QTextCodec gets the right system locale for filenames.
QCoreApplication core_app(argc, argv);
KDSingleApplication single_app(QCoreApplication::applicationName(), KDSingleApplication::Option::IncludeUsernameInSocketName);
// Parse commandline options - need to do this before starting the full QApplication, so it works without an X server
if (!options.Parse()) return 1;
logging::SetLevels(options.log_levels());
if (!single_app.isPrimaryInstance()) {
if (options.is_empty()) {
qLog(Info) << "Strawberry is already running - activating existing window (1)";
}
if (!single_app.sendMessage(options.Serialize())) {
qLog(Error) << "Could not send message to primary instance.";
}
return 0;
}
}
答え1
疑いのとおり、ストロベリーはロックファイルをどこかに配置しましたが、ロックファイルは配置されませんでした/home/
。/tmp/
これら2つのファイルを削除しています...
/tmp/kdsingleapp-username-strawberry
/tmp/kdsingleapp-username-strawberry.lock
...この問題を解決しました。