Start, stop, and restart SQL Server services on Linux

Applies to: yesSQL Server (all supported versions) - Linux

This article describes how to start, stop, or restart the SQL Server Database Engine and SQL Server Agent on Linux by using the command line, or Transact-SQL.

For SQL Server on Windows, see Start, stop, pause, resume, and restart SQL Server services.

Identify the service

SQL Server components are executable programs that run as services (also known as daemons on Linux). Linux services can run without displaying any activity on the computer screen and without user interaction on the command line.

Database Engine service

The Database Engine service is the default instance, with a limit of one per computer. Named instances aren't supported on Linux. To run multiple instances of SQL Server on a single computer using containers, see Deploy and connect to SQL Server Docker containers.

SQL Server Agent service

The SQL Server Agent service executes scheduled administrative tasks, which are called jobs and alerts. For more information, see SQL Server Agent. SQL Server Agent isn't available in every edition of SQL Server. For a list of features that are supported by the editions of SQL Server, see Features Supported by the Editions of SQL Server 2019.

Additional Information

  • On Linux, you can't pause the Database Engine service like you can on Windows. The SQL Server Agent service also can't be paused or resumed.

  • When running on a cluster, use the appropriate cluster management tool to manage the Database Engine for your Linux distribution. See Deploy a Pacemaker cluster for SQL Server on Linux for an example using Pacemaker.

Permissions

By default, only members of the local administrator group can start, stop, or restart a service.

Stopping the Database Engine by using the Transact-SQL SHUTDOWN command requires membership in the sysadmin or serveradmin fixed server roles, and is not transferable.

Using command-line tools

The following steps show how to start, stop, restart, and check the status of the SQL Server service on Linux. To manage a SQL Server Docker container, see Troubleshoot SQL Server on Linux.

Check the status of the Database Engine service using this command:

sudo systemctl status mssql-server

You can stop, start, or restart the Database Engine service as needed using the following commands:

sudo systemctl stop mssql-server
sudo systemctl start mssql-server
sudo systemctl restart mssql-server

To set up and manage the SQL Server Agent, see Install SQL Server Agent on Linux. To restart the SQL Server Agent service, you must restart the Database Engine service.

Transact-SQL

The Database Engine can be stopped by using the SHUTDOWN statement.

To stop the Database Engine using Transact-SQL

  • To wait for currently running Transact-SQL statements and stored procedures to finish, and then stop the Database Engine, execute the following statement.

    SHUTDOWN;
    
  • To stop the Database Engine immediately, execute the following statement.

    SHUTDOWN WITH NOWAIT;
    

For more information about the SHUTDOWN statement, see SHUTDOWN (Transact-SQL).

Next steps