定义

A Linux service is an application (or set of applications) that runs in the background waiting to be used, or carrying out essential tasks.

也就是说,Linux服务是在后台运行的应用程序(或一组应用程序),正在等待执行或正在执行基本任务。

在Linux或者Unix系统中,服务也被称为Daemons(守护进程)。它们运行在后台,为一些程序提供服务。比如我们熟知的sshd服务(其中d指的就是daemon),它就是ssh命令的相应守护进程。

两个命令

service命令

service 命令通常用于控制服务的一些状态,其使用方法如下

Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ]

其中它会去/etc/init.d/目录中寻找service_name,一些基本例子如下(为方便演示,以sshd为例,并且以root身份运行,因此省略了可能的sudo):

  • 查看当前所有服务[+]表示正在运行的,[-]表示当前没有运行,[?]表示因某种原因不能确定其运行状态:
service --status-all
  • 查看单个服务的状态:
service sshd status
  • 启动停止重启重载服务
service sshd start
service sshd stop
service sshd restart
service sshd reload

systemctl命令

systemctl是一个新的用来控制systemd和service的工具,用来取代旧的SysV init 系统管理。

主要语法:

systemctl [OPTION] [SERVICE]

下面给出些基本操作,注意事项同上

  • 查看单个服务的状态:
systemctl status sshd

或者systemctl is-active sshd来查看服务是否运行

  • 启动停止重启重载服务
systemctl start sshd
systemctl stop sshd
systemctl restart sshd
systemctl reload sshd
  • 查看所有服务,这里的服务非常详细
systemctl list-unit-files

或者

systemctl list-units --type service

其中Enabled表明服务正在运行;Disabled表明服务当前没有运行;Masked表示服务不会被运行,除非我们手动移除这个标志;Static表示服务只有在别的服务或单元需要它时才被使用。

  • 开机自启
systemctl enable sshd

或者

systemctl disable sshd

来取消开机自启

service和systemctl的比较

总的来说,后者(systemctl)的功能比前者要强大得多,前者的功能后者似乎都包括,而且后者还含有不少前者所没有的功能。

另外我还看到有些linux发行版本会将service命令重定向为systemctl命令,如下图所示:

创建服务

首先创建服务的执行的代码,也就是将某个程序的运行代码转为服务。

这里以我的一个程序为例,/root/flynet -M socks-tcp -L 8888,运行之后会监听8888端口。具体这个程序的用途在这里并不重要,我们只用知道运行之后它会监听相应端口即可。

然后在/etc/systemd/system目录下新建一个文件,我这里以flynet.service为例,内容为:

[Unit]
Description=Flynet service
After=network.target [Service]
ExecStart=/root/flynet -M socks-tcp -L 8888
Restart=always [Install]
WantedBy=multi-user.target

其中Description为该服务的描述;After为服务的启动顺序,表示在某种条件达到后才执行,这里表示的在网络就绪之后运行;ExecStart即为你要执行的目标代码;Restart表示当该服务因某种原因退出之后,自动启动的配置;WantedBy表示安装的对象,这里表示多用户。

服务创建好之后,然后可以通过下面的命令来启动服务

systemctl start flynet

还可以通过下面的命令来实现开机自启

systemctl enable flynet

其他

开机自启

现在开机自启的实现方式中,比较常用的有两种,其一就是上文中的创建服务,另一种就是cron

cron主要用于定时任务,不过也可以实现开机自启。

下面也简单介绍下cron的,首先输入

crontab -e

然后选择你喜欢的输入法,之后再输入

@reboot /home/user/test.sh

这里表示的是开机会自动运行后面的脚本文件,当然后面内容的内容是自定义的,也可以是单个命令,而不局限于脚本文件。之后再保存即可。

这样就使用cron实现了开机自启,更多cron可以参考我这篇博客

Linux服务和systemctl详解的更多相关文章

  1. linux系统设置服务开机启动3种方法,Linux开机启动程序详解

    linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图     方法2:利用命令行chkconfig命令进行设置 简要说明 ...

  2. Linux中的sudoer详解

    目录 Linux中的sudo详解 一.引言 二.格式 三./etc/sudoers文件 四.sudoers文件讲解 五.其他 Linux中的sudo详解 一.引言 Liunx用户只有两类: 管理员用户 ...

  3. Linux下ps命令详解 Linux下ps命令的详细使用方法

    http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...

  4. linux 开机启动过程详解

    Linux开机执行内核后会启动init进程,该进程根据runlevel(如x)执行/etc/rcx.d/下的程序,其下的程序是符号链接,真正的程序放在/etc/init.d/下.开机启动的程序(服务等 ...

  5. Linux开机启动程序详解

    Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. ...

  6. Linux开机启动程序详解[转]

    Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤 ...

  7. Linux下chkconfig命令详解(转)

    Linux下chkconfig命令详解 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. ...

  8. Linux知识积累(4) Linux下chkconfig命令详解

    Linux下chkconfig命令详解 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. ...

  9. 【转帖】Linux定时任务Crontab命令详解

    Linux定时任务Crontab命令详解 https://www.cnblogs.com/intval/p/5763929.html 知道有crontab 以及 at 命令 改天仔细学习一下 讲sys ...

随机推荐

  1. 2017.12.21 学习vue的新得

    温故而知新,这句话说的真的有道理.每次回顾vue总会学到不一样的知识点,我就在想,我第一遍到底看了什么? 废话不多说,简要记录今天的所得: 1.v-if 与 v-show 同:都是条件渲染 异:渲染的 ...

  2. vue设置页面标题

    使用vue-wechat-title插件对页面标题进行设置 1.安装模块    命令行窗口中运行npm install vue-wechat-title --save PS.如果程序正在运行,ctrl ...

  3. Flask:数据库的建模

    学习完模板系统,接下来要研究的就是框架对数据库的操作,不论python的那个框架,直接使用数据库API(redis.pymysql等)都可以进行操作,但是这些操作不够方便,于是就有了ORM 1.Fla ...

  4. 如何往Spark社区做贡献,贡献代码

    随着社区正在努力准备Apache Spark的下一版本3.0,您可能会问自己“我如何参与其中?”.现在的Spark代码已经很庞大,因此很难知道如何开始自己做出贡献.Spark PMC & Co ...

  5. [springboot 开发单体web shop] 4. Swagger生成Javadoc

    Swagger生成JavaDoc 在日常的工作中,特别是现在前后端分离模式之下,接口的提供造成了我们前后端开发人员的沟通 成本大量提升,因为沟通不到位,不及时而造成的[撕币]事件都成了日常工作.特别是 ...

  6. 可爱精灵宝贝 DP/爆搜

    考崩了 T2 这题是个DP的好题啊(凡是我不会的都是好题,所以所有的题都是好题(雾)) DP思路: 分析性质:这个人对于路上的小精灵,能收集就一定会收集,即他每次都会收集这一段区间的小精灵 然后就考虑 ...

  7. 如何让elemengUI中的表格组件相同内容的单元格自动合并

    1. 前言 这两天在工作中遇到这样一个需求:将某个Excel中的数据在页面上以表格形式展示出来,并且尽量保持数据层级与Excel中一致.在原始Excel文件中,对每一行相同的数据都进行了合并,使得数据 ...

  8. 康托展开&逆康托展开学习笔记

    啊...好久没写了...可能是最后一篇学习笔记了吧 题目大意:给定序列求其在全排列中的排名&&给定排名求排列. 这就是康托展开&&逆康托展开要干的事了.下面依次介绍 一 ...

  9. 参观路线——并查集+dfs

    题目描述 Lambdaland由N个城市组成,任两个城市间都有一条道路相连.  下个月TBL准备参观Lambdaland.他将从城市1开始,以深度优先搜索顺序参观能所有遍历到的城市. 由于TBL是一位 ...

  10. SysTick系统定时器

    1.SysTick定时器介绍 SysTick定时器也叫SysTick滴答定时器,它是Cortex-M3内核的一个 外设,被嵌入在 NVIC 中.它是一个24 位向下递减的定时器,每计数一 次所需时间为 ...