10

I am running the gunicorn server as a service via systemd, Here is the sample service file:

[Unit]
Description=Gunicorn NGINX
After=network.target

[Service]
User=root
Group=www-data
WorkingDirectory=/test
ExecStart=/usr/local/bin/gunicorn --workers 8 --threads 8 --backlog 100 --bind 10.0.0.20:5000 -m 777 abc:app
Restart=always

[Install]
WantedBy=multi-user.target

I want now to replace the number near --workers and --threads by number of cores using the shell command so that it will dynamically pick the number of cores

nproc --all

Can someone help me how to do this

1 Answers1

19

You can explicitly invoke a shell to get shell parsing.

ExecStart=/bin/bash -c '/usr/local/bin/gunicorn --workers "$(nproc --all)" --threads "$(nproc --all)" --backlog 100 --bind 10.0.0.20:5000 -m 777 abc:app'
John Kugelman
  • 349,597
  • 67
  • 533
  • 578