I have a program (pre-compiled binary) that, when started manually on linux, runs fine. It has a CLI that I use to enter commands. This program is a software router, I can connect to it's CLI to adjust it's settings.
However if I want to start it up at boot time the program goes very slowly, unusably so. If there is information being printed to the screen for example, it will be printed out in chunks, as if there was a slow baudrate, that kind of thing. Every command I enter is like this, information is printed very slowly.
What could be happening, what is different from me running this manually after boot rather than from init.d with S99 or something? If I stop the process and relaunch it manually it works fine.
This python script is what is called from init.d:
import subprocess application_pidfile = "/var/run/application.pid" command_line=["start-stop-daemon", "-q", "-p", application_pidfile, "-S", "-m", "-b", "-x", "/bin/application"] subprocess.call(command_line)
What I wonder is why would it still be going slow an hour after boot? Yet if I just stop it and start it manually it will run fine even a few seconds after boot? Even if I set a delay, such as start this process a few minutes after boot the same issue occurs.
Could it be starting in some slow "socket" mode or something?