Skip to content

migrate_v4_EN_service

winlin edited this page Jul 31, 2022 · 1 revision

HOME > EN > System Service

SRS Linux Service

There are many ways to startup SRS:

  • Directly run srs at the trunk/objs, and need start again when system restart.
  • Linux service, the init.d scirpt at srs/trunk/etc/init.d/srs, and user can add to linux service when linked to the /etc/init.d/srs then add as service /sbin/chkconfig --add srs.

The SRS release binary can be downloaded from release site, we can install as system service, see: Github: release or Mirror for China: release

Manual

We donot need to add to linux service to directly start SRS:

cd srs/trunk && ./etc/init.d/srs start

or

cd srs/trunk && ./objs/srs -c conf/srs.conf

init.d

Install and startup SRS as linux system service:

  • Build SRS: the install script will modify the INSTALL ROOT of init.d script.
  • Link to init.d: link the trunk/etc/init.d/srs to /etc/init.d/srs
  • Add to linux service: use /sbin/chkconfig for Centos.

Step1: Build and Install SRS

Intall SRS when build ok:

make && sudo make install

the install of make will install srs to the prefix dir, default to /usr/local/srs, which is specified by configure, for instance, ./configure --prefix=`pwd`/_release set the install dir to _release of current dir to use make install without sudo.

Step2: Link script to init.d:

sudo ln -sf \ /usr/local/srs/etc/init.d/srs \ /etc/init.d/srs

Step3:Add as linux service:

#centos 6 sudo /sbin/chkconfig --add srs

or

#ubuntu12 sudo update-rc.d srs defaults

Use init.d script

Get the status of SRS:

/etc/init.d/srs status

Start SRS:

/etc/init.d/srs start

Stop SRS:

/etc/init.d/srs stop

Restart SRS:

/etc/init.d/srs restart

Reload SRS:

/etc/init.d/srs reload

For logrotate(SIGUSR1):

/etc/init.d/srs rotate

For Gracefully Quit(SIGQUIT):

/etc/init.d/srs grace

systemctl

CentOS7 use systemctl to manage services, we also need to install init.d service, then add to systemctl:

./configure && make && sudo make install && sudo ln -sf /usr/local/srs/etc/init.d/srs /etc/init.d/srs && sudo cp -f /usr/local/srs/usr/lib/systemd/system/srs.service /usr/lib/systemd/system/srs.service && sudo systemctl daemon-reload && sudo systemctl enable srs 

Remark: We MUST copy the srs.service, or we couldn't enable the service by systemctl.

Use systemctl to start SRS:

sudo systemctl start srs 

Gracefully Upgrade

Gracefully Upgrade allows upgrade with zero downtime, it can be done by:

  • New SRS and old SRS should be able to listen at the same ports. They provide services in the same ports simultaneously.
  • The old SRS then closes listeners, and quit util all connections closed, this is Gracefully Quit.

Note: About more informations, please see #1579.

SRS3 supports Gracefully Quit:

  • Use signal SIGQUIT, or command /etc/init.d/srs grace
  • A new config grace_start_wait to wait for a while then start gracefully quit, default 2.3s
  • A new config grace_final_wait allows wait for a few minutes finally, default 3.2s
  • A new config force_grace_quit to force gracefully quit, see #1579.
# For gracefully quit, wait for a while then close listeners, # because K8S notify SRS with SIGQUIT and update Service simultaneously, # maybe there is some new connections incoming before Service updated. # @see https://github.com/ossrs/srs/issues/1595#issuecomment-587516567 # default: 2300 grace_start_wait 2300; # For gracefully quit, final wait for cleanup in milliseconds. # @see https://github.com/ossrs/srs/issues/1579#issuecomment-587414898 # default: 3200 grace_final_wait 3200; # Whether force gracefully quit, never fast quit. # By default, SIGTERM which means fast quit, is sent by K8S, so we need to # force SRS to treat SIGTERM as gracefully quit for gray release or canary. # @see https://github.com/ossrs/srs/issues/1579#issuecomment-587475077 # default: off force_grace_quit off;

Note: There is a example for Gracefully Quit, see #1579

Winlin 2019.10

Welcome to SRS wiki!

SRS 5.0 wiki

Please select your language:

SRS 4.0 wiki

Please select your language:

SRS 3.0 wiki

Please select your language:

SRS 2.0 wiki

Please select your language:

SRS 1.0 wiki

Please select your language:

Clone this wiki locally