网上有很多关于Linux 创建服务的知识,也有很多人为大家解答关于开机启动的问题,今天小编为大家整理了关于这方面的知识,让我们一起来看下吧!

内容导航:

一、开机启动

二、怎么查看开机启动项

一、开机启动

服务是在后台运行的应用程序类型。服务应用通常可以在本地和通过网络为用户提供一些功能。有些软件不需要安装和解压缩就可以使用,或者在安装过程中没有向系统注册服务。如果我们需要启动,我们需要手动创建服务。

与在注册表中创建启动程序相比,Windows系统具有优先级高、权限大、无需账号登录即可启动等优点。

与计划任务相比,服务可以手动停止和重新启动。计划任务是一个周期性的作业,只能按照设定的规则执行一次或循环执行。

WinSW是用于创建Windows服务的开源免费工具。项目地址是https://github.com/winsw/winsw.

Win10选择WinSW。NET461,Win7等较低版本系统选择NET4,XP选择NET2。您可以通过下载该版本。如果这台计算机上没有. NET framework,请使用. NET。Sample-allOptions.xml是一个完整的示例配置文件。通常,我们下载sample-minimal.xml来最小化示例配置文件。

需要注意的是,每个启动服务对应一个winsw程序,服务完成后,winsw和对应的配置文件不能删除。

示例:

配置frp服务器和客户端在Win10上启动。新建一个frp文件夹,制作WinSW.NET461.exe的两个副本,分别命名为start_frps.exe和start_frpc.exe,制作sample-minimal.xml的两个副本,分别命名为start_frps.xml和start _ frpc.xml,(exe程序和xml配置文件名要一一对应)。

start _ frps . XML service \ N idfrps/id \ N name Frp Server/name \ N Description my Frp Server/Description \ N \ N Executable EC:\ \ Tools \ \ Frp \ \ frps . exe/Executable \ N arguments-C ' C:\ \ Tools \ \ Frp \ \ config \ \ frps . ini '/arguments \ N/service start _ frpc . XML service \ N idfrpc/id \ N name Frp Client/name \ N Description my Frp Client/Description \ N \ N \ N Executable C:\ \ Tools \ \ Frp \ \ frpc.exe/executable \ N arguments-C

Id:指定Windows系统内部使用的标识服务的ID。它在系统中安装的所有服务中必须是唯一的,并且应该完全由字母数字字符组成。Name:服务的简称,可以包含空格和其他字符。描述:服务的可读描述。选择此服务后,它将显示在Windows服务管理器中。Executable:这个元素指定要启动的可执行文件。可以是绝对路径,也可以指定可执行文件的名称,然后从环境变量“Path”开始搜索(需要注意的是,该服务经常在不同的用户帐户中运行,因此可能需要有一个与您在环境变量PATH中设置的路径不同的路径)。参数:启动参数,可选。右键单击开始菜单,以管理员身份打开PowerShell,并导航到frp目录。

执行:

start_frps.exe安装

start_frpc.exe安装

打开services.msc,您可以看到服务已经成功安装。

它可以设置为自动启动。

如果需要删除服务,请在frp目录中执行:

start_frps.exe卸载

start_frpc.exe卸载

如果只需要启动Linux系统,只需要将执行代码写在/etc/rc.local中即可,有些发行版在这个文件中是不存在的,手动创建,设置为可执行权限即可。

Rc.local文件:

#!/bin/bash//.执行代码文件权限设置为可执行文件:chmod755/etc/rc.local。

言归正传,Linux创建服务如下:

方法一:在/etc/init.d中创建一个文件,比如tomcat,设置为可执行权限。

文件内容:

#!/bin/bash \ n # \ n # # # BEGIN INIT INFO \ n # Provides:engr-z \ n # Required-Start:\ n # Required-Stop:\ n # Should-Start:$ network $ time \ n # Should-Stop:$ network $ time \ n # Default-Start:3 4 5 \ n # Default-Stop:\ n # Short-Description:\ n # # # END INIT INFO \ n # \ n \ n export CATALINA _ HOME=' Tomcat directory ' \ n export CATALINA _ BASE=' instance directory instance ' \ n然后回显“启动tomcat .”\ n $ CATALINA _ HOME/bin/startup . sh \ n fi;\ n stop)\ n if[-f $ CATALINA _ HOME/bin/startup . sh];然后回显“停止tomcat .”\ n $ CATALINA _ HOME/bin/shut down . sh \ n fi;*) echo $ '用法:$0 {start|stop}'退出1;\ n在esac文件### BEGIN INIT INFO和### END INIT INFO之间的声明是必要的,它给出了服务和服务启动时所依赖的运行级别。

执行以下命令启动系统并加载脚本:

Update-rc.d服务文件名默认值99

方法二(推荐)现在主流Linux发行版的启动都是由systemctl管理的(老的是由chkconfig管理的),配置起来简单多了,不需要太了解Linux服务的启动原理。

Systemctl脚本存储在:/usr/lib/systemd/,可分为系统和用户。比如需要不登录就启动运行的程序,它们存储在系统服务中,即:/usr/lib/systemd/system目录。

本目录中的服务包括以服务结尾的服务和以目标结尾的服务。

服务:守护进程的启动、停止、重启和重载是这类单元最明显的类型。目标:这种类型的单位在逻辑上将其他单位分组。他们自己实际上不做任何事情,他们只是引用其他单元。通过这种方式,可以统一控制该单元。一个配置文件一般分为三个部分:[单元]、[服务]和[安装]。

[Unit] #主要指服务描述Description=test #简要描述服务After=network.target #描述服务类别,表示网络服务启动后需要启动该服务Before=xxx.service #表示部分服务需要在之前启动,After和Before字段只涉及启动顺序,不涉及依赖关系。\ n \ n[Service]# core area \ n type=forking #表示后台运行模式。User=user #设置要运行的服务的用户Group=user #设置要运行的服务的用户组\ nkilmode=control-group #定义systemd如何停止服务\ npidfile=/usr/local/test/test . pid #存储PID的绝对路径\ NRestart=no #定义服务进程退出后systemd的重新启动方法。默认情况下不重新启动\ nexecstart=/usr/local/test/bin/startup . sh #服务启动命令,需要绝对路径\ nprivattmp=true #为服务分配独立的临时空间\ N \ N[install]\ N wanted by=Multi-user . target # Multi-user以下是我在Linux下启动服务的脚本(frps.service):

[Unit]\ n description=frps Service \ n requires=network . target network-online . target \ n ter=network . target network-online . target \ n \ n[Service]\ n type=simple \ nPIDFile=/tmp/frps . PID \ nExecStart=/opt/FRP/frps-c/opt/FRP . conf/frps . ini \ nExecReload=/bin/kill-s HUP $ main PID \ nExecStop=/bin/kill-s QUIT $ main PID \ nPrivateTmp=true \ n

Systemctl提供了一组子命令来管理单个单元。它的命令格式是:

系统指令

示例:

Systemdaemon-reload #过载系统服务systemctl enable *。service #设置要启动的服务systemctl start *。service #启动服务systemctl stop *。service #停止服务\ Nsystemctl reload *。service #重新启动服务。由于篇幅有限,更多systemctl的用法和说明就不写了。以上命令对于操作系统服务来说已经足够了。

除注明外,均为‘夺城狮郑’原创文章。如转载请注明出处。

本文链接:https://engr-z.com/314.html

二、怎么查看开机启动项

哪些启动项可以关闭(自启动项可以通过以下方式找到。

1、下载超级兔子,选择自建系统/启动程序,带启动选项,可取消或添加或完全删除(或者金山卫士、360卫士等软件也有此功能)。

2、单击“开始”/运行/输入msconfig,然后按enter键/单击“开始”/在其中查找启动提示选项。

3、去掉自启动项(上面找不到,看这里)

启动/运行输入regedit打开注册表编辑器,然后展开它。

【HKEY _本地_机器\软件\微软\ windows \当前版本\运行】在右边,

【HKEY _当前_用户\软件\微软\ windows \当前版本\运行】在右边,

看看有没有你正在寻找的选择。

以上就是关于Linux 创建服务的知识,后面我们会继续为大家整理关于开机启动的知识,希望能够帮助到大家!