In Matomo Diagnostics, there is a check for “Setup Cron – Managing processes via CLI”. It is helpful to get this to work OK especially whenever you manage a high traffic Matomo instance or if there are a lot of websites or segments to be archived (learn more about improving Matomo performance).

For this diagnostic “Setup Cron – Managing processes via CLI” to work OK you need:

  • The following PHP functions must be enabled: shell_exec, getmypid (these are available by default in PHP but may have been disabled manually)
  • The system must provide the following commands: ps, awk (these are available by default in Linux systems)
  • The proc filesystem needs to be mounted at /proc for the ps x command to work (this is the default on linux systems)
  • The which package needs to be installed and working

Notes:

  • this is not supported on Windows
  • this is not supported on Synology devices
  • in some cases the configuration for web will have these functions disabled (For example if you have different INI files for CLI and web)

You can manually test if Managing processes via CLI is supported by running the following command in your server:

./console diagnostics:run --all | grep -i "processes via cli"

If it returns Setup Cron - Managing processes via CLI: INFORMATIONAL not supported (optional) learn more then it means that it is not supported yet (even on CLI). To troubleshoot why, and find out how to solve this issue, here are the following commands that should be running (from your terminal or SSH window as the Matomo user) for the diagnostic to display OK:

ps -e
# Should return a list containing PID, TTY, TIME and CMD for ps

awk -V
# Should return the installed version of awk, for example GNU Awk 4.2.1, API: 2.0

ls /proc
# Should return the full contents of the /proc folder

php -r "var_dump(function_exists('shell_exec'));"
php -r "var_dump(function_exists('getmypid'));"
# Should both return bool(true)

which
#should return nothing, if which is not installed it will return "command not found"
#in this case you will need to install the which package from your distributions repository