日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux自动启动network服务,Windows/Linux 创建开机启动服务

發布時間:2023/12/1 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux自动启动network服务,Windows/Linux 创建开机启动服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

系統服務是一種應用程序類型,它在后臺運行。服務應用程序通常可以在本地和通過網絡為用戶提供一些功能。有些軟件無需安裝解壓就能使用,或者在安裝時未向系統注冊服務。如果我們需要開機啟動,需要手動創建服務。

Windows系統篇

相對于在注冊表中創建開機啟動程序,服務具有優先級高,權限大,無需賬戶登錄即可啟動的優點。

和計劃任務相比,服務可以手動停止,重啟。而計劃任務是周期性作業,只能按設定的規則執行一次或循環執行。

WinSW是一款開源免費,用于創建Windows服務的工具,項目地址:https://github.com/winsw/winsw

dc096911f30087316ce08940aa1653d2.png

Win10選擇WinSW.NET461,低版本系統如Win7選擇NET4,XP選擇NET2。如果本機沒有.NET框架的可以下載帶.NET的版本。sample-allOptions.xml是完整示例配置文件,一般我們下載sample-minimal.xml最小化示例配置文件。

需要注意的是,每一個啟動服務對應一個winsw程序,制作成服務后winsw.exe和相應配置文件不可刪除。

示例:

在Win10上配置frp服務端和客戶端開機啟動。新建frp文件夾,復制2個WinSW.NET461.exe副本,命名為start_frps.exe和start_frpc.exe,復制2個sample-minimal.xml副本,命名為start_frps.xml和start_frpc.xml。(exe程序和xml配置文件名要一至)。

start_frps.xml

frps

Frp Server

My Frp Server

C:\Tools\Frp\frps.exe

-c "C:\Tools\Frp\config\frps.ini"

start_frpc.xml

frpc

Frp Client

My Frp Client

C:\Tools\Frp\frpc.exe

-c "C:\Tools\Frp\config\frpc.ini"

配置說明:

id:指定在Windows系統內部使用的識別服務的ID。在系統中安裝的所有服務中必須是唯一,它應該完全由字母數字字符組成。

name:服務的簡短名稱,它可以包含空格和其他字符。

description:該服務可讀描述。當選中該服務時,它將顯示在Windows服務管理器中。

executable:該元素指定要啟動的可執行文件。它可以是絕對路徑,也可以指定可執行文件的名稱,然后從環境變量“PATH”中搜索(需要注意的是,服務經常在不同的用戶賬戶中運行,因此它可能需要有不同于你設置在環境變量Path中的路徑)。

arguments:啟動參數,可選。

在開始菜單點右鍵,用管理員身份打開PowerShell,定位到frp目錄。

c4a2ef22e1fc19ae60fb410c360e24f9.png

執行:

start_frps.exe install

start_frpc.exe install

efa5a5a4a73843f2345e57f1248c9be5.png

打開services.msc,可以看到服務已安裝成功。

930db2e48ea77aa87d7a8a68957a8b98.png

可以設為自動啟動。

如果需要刪除服務,在frp目錄中執行:

start_frps.exe uninstall

start_frpc.exe uninstall

Linux系統篇

如果僅僅只需要開機啟動,直接把執行代碼寫在 /etc/rc.local 中即可。有些發行版不存在該文件,手動建立,并設為可執行權限即可。

rc.local 文件:

#!/bin/bash

// ...執行代碼

文件權限設為可執行:chmod 755 /etc/rc.local

言歸正傳,Linux創建服務如下:

方法一

在 /etc/init.d 中創建文件,如:tomcat,并設為可執行權限。

文件內容:

#!/bin/bash

#

### BEGIN INIT INFO

# Provides: engr-z

# Required-Start:

# Required-Stop:

# Should-Start: $network $time

# Should-Stop: $network $time

# Default-Start: 3 4 5

# Default-Stop:

# Short-Description:

# Description:

### END INIT INFO

#

export CATALINA_HOME="tomcat目錄"

export CATALINA_BASE="實例目錄instance"

case "$1" in

start)

if [ -f $CATALINA_HOME/bin/startup.sh ];then

echo "start tomcat ..."

$CATALINA_HOME/bin/startup.sh

fi;;

stop)

if [ -f $CATALINA_HOME/bin/startup.sh ];then

echo "stop tomcat ..."

$CATALINA_HOME/bin/shutdown.sh

fi;;

*)

echo $"Usage: $0 {start|stop}"

exit 1;;

esac

文件### BEGIN INIT INFO和### END INIT INFO之間的聲明是必須的,給出了服務啟動時依賴的服務和運行級別。

執行以下命令,讓系統開機加載腳本:

update-rc.d defaults 99

方法二(推薦)

現在主流Linux發行版啟動都交給systemctl管理(舊的用chkconfig管理),配置起來簡單很多,不需要對Linux服務啟動原理過多了解。

systemctl腳本存放在:/usr/lib/systemd/,有系統(system)和用戶(user)之分,像需要開機不登陸就能運行的程序,就將程序存在系統服務里,即:/usr/lib/systemd/system 目錄下。

該目錄下的服務有以service結尾的,也有target結尾的。

service :守護進程的啟動、停止、重啟和重載是此類 unit 中最為明顯的幾個類型。

target :此類 unit 為其他 unit 進行邏輯分組。它們本身實際上并不做什么,只是引用其他 unit 而已。這樣便可以對 unit 做一個統一的控制。

配置文件一般會分為3部分:[Unit]、[Service]和[Install]

[Unit] # 主要是服務說明

Description=test # 簡單描述服務

After=network.target # 描述服務類別,表示本服務需要在network服務啟動后在啟動

Before=xxx.service # 表示需要在某些服務啟動之前啟動,After和Before字段只涉及啟動順序,不涉及依賴關系。

[Service] # 核心區域

Type=forking # 表示后臺運行模式。

User=user # 設置服務運行的用戶

Group=user # 設置服務運行的用戶組

KillMode=control-group # 定義systemd如何停止服務

PIDFile=/usr/local/test/test.pid # 存放PID的絕對路徑

Restart=no # 定義服務進程退出后,systemd的重啟方式,默認是不重啟

ExecStart=/usr/local/test/bin/startup.sh # 服務啟動命令,命令需要絕對路徑

PrivateTmp=true # 表示給服務分配獨立的臨時空間

[Install]

WantedBy=multi-user.target # 多用戶

以下是我在Linux下frps啟動服務腳本(frps.service):

[Unit]

Description=frps service

Requires=network.target network-online.target

After=network.target network-online.target

[Service]

Type=simple

PIDFile=/tmp/frps.pid

ExecStart=/opt/frp/frps -c /opt/frp.conf/frps.ini

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

1ccd48fca75be4b8e057b5bab12d4bc4.png

systemctl 提供了一組子命令來管理單個的 unit,其命令格式為:

systemctl [command] [unit]

示例:

systemctl daemon-reload # 重載系統服務

systemctl enable *.service # 設置某服務開機啟動

systemctl start *.service # 啟動某服務

systemctl stop *.service # 停止某服務

systemctl reload *.service # 重啟某服務

由于篇幅有限,systemctl更多用法和說明就不寫了。以上幾個命令用于操作系統服務足夠。

總結

以上是生活随笔為你收集整理的linux自动启动network服务,Windows/Linux 创建开机启动服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。