Launch the framework¶
EH Forwarder Bot offered 2 ways to launch the framework:
ehforwarderbot
python3 -m ehforwarderbot
Both commands are exactly the same thing, accept the same flags, run the same code. The latter is only a backup in case the former does not work.
Options¶
-h
,--help
: Show help message-p PROFILE
,--profile PROFILE
: Switch profileFrom version 2, EFB supports running different instances under the same user, identified by their profiles. The default profile is named
default
.-V
,--version
: Print version informationThis shows version number of Python you are using, the EFB framework, and all channels and middlewares enabled.
-v
,--verbose
: Print verbose logThis option enables verbose log of EFB and all enabled modules. This, together with
--version
, is particularly useful in debugging and issue reporting.--trace-threads
: Trace hanging threadsThis option is useful to identify source of the issue when you encounter situations where you had to force quit EFB. When this option is enabled, once the first stop signal (
SIGINT
orSIGTERM
) is sent, threads that are asleep will be identified and reported every 10 seconds, until a second stop signal is seen.In order to use this option, you need to install extra Python dependencies using the following command.
pip3 install 'ehforwarderbot[trace]'
Quitting EFB¶
If you started EFB in a shell, you can simply press Control-c to trigger
the quit process. Otherwise, ask your service manager to issue a SIGTERM
for a graceful exit. The exit process may take a few second to complete.
Important
It is important for you to issue a graceful termination signal (e.g.
SIGTERM
), and NOT to use SIGKILL
. Otherwise you may face the
risk of losing data and breaking programs.
If you have encountered any issue quitting EFB, press Control-c for 5
times consecutively to trigger a force quit. In case you have frequently
encountered situations where you had to force quit EFB, there might be a bug
with EFB or any modules enabled. You may want to use the --trace-threads
option described above to identify the source of issue, and report this to
relevant developers.