Answer the question
In order to leave comments, you need to log in
There is a program, but it does not start
Here I encountered such a problem. Skype stopped working. It seems to be there, but it doesn’t start:
The file is there, executable, there are permissions to start, it’s not broken. So what are these things? There was a similar problem with one .so library, which was there, but the programs that were launched did not see it, which was what they were talking about.
Has anyone experienced this or know what to do about it?
PS Arch x86_64
Answer the question
In order to leave comments, you need to log in
In the ELF format, a special interpreter library, aka interpreter, is responsible for loading dynamic libraries, the name of which is indicated in a special segment of the elf file. If the kernel detects such a header during exec(), then the kernel takes the name of the interpreter from there and tries to load and start executing a new program from the interpreter. If the requested interpreter is not available on disk, process creation fails with a "file not found" error code. From the point of view of the creator - in the picture it is bash - this is no different from the absence of a binary, and the kernel, which knows the difference, does not output anything to the terminal in principle.
You can see which interpreter the program needs using readelf -l . In this case, a 32-bit interpreter has obviously crashed somewhere from a 64-bit environment.
Show
$ file /usr/bin/skype
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question