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服务是在后台运行的应用程序(或一组应用程序),正在等待执行或正在执行基本任务。 在Linux或者Unix系统中,服务也被称为Daemons(守护进程)。它们运行在后台,为一些程序提供服务。好比咱们熟知的sshd
服务(其中d指的就是daemon),它就是ssh
命令的相应守护进程。shell
service
命令一般用于控制服务的一些状态,其使用方法以下网络
Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ]
其中它会去/etc/init.d/
目录中寻找service_name,一些基本例子以下(为方便演示,以sshd
为例,而且以root身份运行,所以省略了可能的sudo
):app
[+]
表示正在运行的,[-]
表示当前没有运行,[?]
表示因某种缘由不能肯定其运行状态:service --status-all
service sshd status
service sshd start service sshd stop service sshd restart service sshd reload
systemctl
是一个新的用来控制systemd和service的工具,用来取代旧的SysV init 系统管理。 主要语法:ssh
systemctl [OPTION] [SERVICE]
下面给出些基本操做,注意事项同上tcp
systemctl status sshd
或者systemctl is-active sshd
来查看服务是否运行工具
systemctl start sshd systemctl stop sshd systemctl restart sshd systemctl reload sshd
systemctl list-unit-files
或者spa
systemctl list-units --type service
其中Enabled代表服务正在运行;Disabled代表服务当前没有运行;Masked表示服务不会被运行,除非咱们手动移除这个标志;Static表示服务只有在别的服务或单元须要它时才被使用。rest
systemctl enable sshd
或者code
systemctl disable sshd
来取消开机自启
总的来讲,后者(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能够参考我这篇博客