主頁 >  其他 > Linux學習筆記(十三):系統服務

Linux學習筆記(十三):系統服務

2021-01-03 11:35:43 其他

Linux學習筆記(十三):系統服務

  • daemon & service
  • systemd
  • systemctl指令
    • 管理單一服務(service unit)
    • 查看系統上所有的服務
    • 管理不同的操作環境(target unit)
    • 分析服務間的依賴性
    • 與daemon運行相關的目錄
    • 網路服務與埠
  • systemctl針對service型別的組態檔
    • systemctl組態檔目錄
    • systemctl組態檔引數
    • 舉例:創建備份服務
  • systemctl針對timer型別的組態檔

daemon & service

A daemon, or system service, is a background process usually started during the boot sequence. Daemons typically run independent of users, waiting for events to occur and providing services in response. source1

A “Service” could refer to either a Daemon or a Service. A daemon is a subset of services that always run in memory waiting to service a request. A non-daemon service generally is handled by xinetd (eXtended InterNET services daemon). xinetd listens for the request, then starts the required service to handle the request. After the request has been serviced the service is then stopped again. source2

Typical non-daemon services: rsync vsftpd
Typical daemonized services: MySQL Apache

然而對于一般的Linux使用者來說,并不需要區分daemon與service,

systemd

systemd即為system daemon,是linux下的一種init軟體,開發目標是提供更優秀的框架以表示系統服務間的依賴關系,并依此實作系統初始化時服務的并行啟動,同時達到降低Shell的系統開銷的效果,最終代替常用的System V與BSD風格init程式,source3

從CentOS 7.x以后,紅帽系列的distribution放棄了沿用多年的System V開機啟動服務的流程,改用systemd的啟動服務管理機制,systemd包括常駐記憶體的systemd服務systemctl指令,與System V的init啟動腳本相比,其好處在于:

  • 平行處理所有服務,加速開機流程;
  • 一經要求就回應的on-demand啟動方式;
  • 自動檢查并處理服務依賴性;
  • 根據功能將服務單位(unit)劃分為service, socket, target, path, snapshot, timer等不同型別,方便管理;
  • 將多個daemon集合為一個target群組,可以同時執行;
  • 向下兼容舊的init服務腳本,

systemd的組態檔目錄
systemd將以前的daemon執行腳本通稱為一個服務單位(unit),每種服務單位依據功能來區分時,可以分為不同的型別(type),基本的型別有系統服務、資料監聽與交換的套接字服務(socket)、存盤系統狀態的快照(snapshot)、提供不同類似執行等級分類的操作環境(target),等等,不同型別的服務組態檔都放在如下目錄中:

  • /usr/lib/systemd/system/:每個服務最主要的啟動腳本設定,類似以前/etc/init.d中的檔案;
  • /run/systemd/system/:系統執行程序中所產生的服務腳本,其優先級比/usr/lib/systemd/system高;
  • /etc/systemd/system:管理員依據主機系統的需求建立的執行腳本,類似以前的/etc/rc.d/rc5.d/Sxx,執行的優先級比/run/systemd/system高,

因此,決定系統開機是否會執行哪些服務其實要看/etc/systemd/system中的設定,但實際中該目錄下都是一些鏈接檔案,實際執行的腳本都在/usr/lib/systemd/system目錄下,

systemd的unit型別分類說明
通過檔案擴展名可以區分/usr/lib/systemd/system/目錄下不同服務的型別,

擴展名主要服務功能
.service一般服務型別,主要是系統服務,包括服務器本身所需要的本地服務以及網路服務,也是最常見的型別
.socket內部程式資料交換的套接字服務,可以看作是為不同行程間提供雙向通信功能(Inter-process communication)的端點
.target執行環境型別,其實是一群服務單元的集合,執行.target就是執行集合中包含的一堆.service和.socket等服務
.mount
.automount
檔案系統掛載相關的服務,例如來自網路的自動掛載、NFS檔案系統掛載等等
.path偵測特定檔案或目錄型別,比如列印服務就需要偵測列印佇列目錄來啟動列印功能
.timer回圈執行的服務,功能與anacrontab類似,但是更加靈活

systemctl指令

相比System V的service, chkconfig, setup, init指令,systemd僅依賴systemctl一個指令來管理服務,

管理單一服務(service unit)

通過systemctl管理單一服務的啟動、開機啟動的指令格式為systemctl [command] [unit],其中,command主要有:

  • start:立刻啟動服務單元;
  • stop:立刻停止服務單元;
  • restart:立刻重啟服務單元;
  • reload:在不停止服務單元的情況下,重新加載組態檔使設定生效;
  • enable:設定服務單元開機自啟動;
  • disable:設定服務單元開始時不會被啟動;
  • status:查看服務單元目前的狀態;
  • is-active:查看服務單元目前是否在運行中;
  • is-enable:查看服務單元是否設定了開機自啟動,

需要注意的是,不要使用kill指令關閉服務,否則systemctl會無法繼續監控該服務,systemctl status的輸出中,常見的服務狀態有:

  • active (running):有一個或多個程式正在系統中執行;
  • active (exited):僅執行一次就正常結束的服務,目前并沒有任何程式在系統中執行;
  • active (waiting):正在執行中,但是在等待其他的事件才能繼續處理;
  • inactive:當前服務沒有處于運行狀態;
  • enabled:該服務已設定開機啟動;
  • disabled:該服務未設定開機啟動;
  • static:該服務不能自己啟動,但可以被其他服務喚醒;
  • mask:該服務無論如何都不能被啟動,因為已經被強制注銷,但是可以通過systemctl unmask指令改回原來的狀態,

查看系統上所有的服務

通過systemctl查看系統上所有服務的指令格式為systemctl [command] [--type=TYPE] [--all],其中,command有

  • list-units:根據unit列出目前啟動的服務單元,若加上--all才會列出未啟動的服務;
  • list-unit-files:根據/usr/lib/systemd/system/內的檔案,將所有檔案串列說明,

--type=TYPE即是指服務單元的型別,包括service, socket, target等等,

管理不同的操作環境(target unit)

列出與操作界面有關的target的指令為systemctl list-units --type=target --all,CentOS 7中與操作界面相關性較高的主要有

  • graphical.target:文字加上圖形界面,包含了multi-user.target專案;
  • multi-user.target:純文本模式;
  • rescue.target:在無法使用root登錄的情況下,systemd在開機時會多加一個額外的暫時系統,可以用于取得root權限來維護系統;
  • emergency.target:緊急處理系統的錯誤,在rescue.target無法使用時可以嘗試;
  • shutdown.target:關機的流程;
  • getty.target:可以設定需要幾個tty,

查看與修改操作界面相關的target的指令格式為systemctl [command] [unit.target],其中,command包括

  • get-default:顯示目前的target資訊;
  • set-default:設定target為默認的操作模式;
  • isolate:在不關機的情況下,切換到后面接的操作模式,

systemctl也提供了其他指令來切換操作模式,

[root@study ~]$ systemctl get-default
graphical.target
[root@study ~]$ systemctl set-default multi-user.target
[root@study ~]$ systemctl get-default
multi-user.target
[root@study ~]$ systemctl isolate multi-user.target
[root@study ~]$ systemctl isolate graphical.target

[root@study ~]$ systemctl poweroff # 系統關機
[root@study ~]$ systemctl reboot # 重啟
[root@study ~]$ systemctl suspend # 暫停
[root@study ~]$ systemctl hibernate # 休眠
[root@study ~]$ systemctl rescue # 強制進入救援模式
[root@study ~]$ systemctl emergency # 進入緊急救援模式

其中,暫停模式(suspend)會將系統的狀態資料保存到記憶體中,然后關閉大部分系統硬體,但并未關機;休眠模式(hibernate)則是將系統狀態保存到硬碟當中,然后將計算機關機,暫停模式喚醒的速度通常比休眠模式更快,

分析服務間的依賴性

通過systemctl分析服務之間依賴性的指令為systemctl list-dependencies [unit] [--reverse],其中--reverse表示反向追蹤誰在使用該服務單元,

與daemon運行相關的目錄

除了之前提到的systemd組態檔目錄以外,與系統服務運行有關的目錄還包括:

  • /usr/lib/systemd/system/
  • /run/systemd/system/
  • /etc/systemd/system/
  • /etc/sysconfig/*:幾乎所有服務都會將初始化的一些選項設定寫入該目錄下;
  • /var/lib/:一些會產生資料的服務會將資料寫入到該目錄下;
  • /run/:該目錄下存放了很多系統服務的暫存檔案,包括lock file和PID file,

網路服務與埠

/etc/services中設定了網路服務、對應的網路協議(tcp、udp)與埠,一般不建議通過該檔案來直接修改服務的埠號,使用netstat指令也可以查看打開的埠,如果有不需要開啟的網路服務,可以使用systemctl stop指令關閉服務(及其使用的埠),

systemctl針對service型別的組態檔

systemctl組態檔目錄

以vsftpd服務為例,其對應的組態檔包括:

  • /usr/lib/systemd/system/vsftpd.service:官方釋出的預設組態檔,建議不要修改;
  • /etc/systemd/system/vsftpd.service.d/custom.conf:該檔案中的設定會被累加到/usr/lib/systemd/system/vsftpd.service檔案中;
  • /etc/systemd/system/vsftpd.service.wants/*:依賴檔案的鏈接,wants表示在vsftpd.service啟動之后才能啟動的其它服務;
  • /etc/systemd/system/vsftpd.service.requires/*:依賴檔案的鏈接,requires表示在啟動vsftpd.service之前需要先啟動的其它服務,

systemctl組態檔引數

以sshd服務為例,其組態檔sshd.service的內容如下:

[root@study ~]$ cat /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

注意到,該組態檔內容被分為了三個部分:

  • [Unit]:服務單元本身的說明,以及與其他服務的依賴關系;
  • [Service], [Socket], [Mount], …:不同的服務單元型別就要使用對應的專案設定,這里sshd.service當然就是用[Service]設定,該部分內容主要規定服務啟動的腳本、環境、組態檔名、重啟的方式等等;
  • [Install]:表示將該服務單元安裝到哪一個target里面,

此外,有幾個重要的設定規則如下:

  • 組態檔中的設定專案是可以重復的,比如我可以設定多個After引數,但是最后一個After的設定會取代(覆寫)前面所有After引數的設定值;
  • 如果有的引數的設定方式是布林值,可以用1, yes, true, on表示啟動,用0, no, false, off表示關閉;
  • 空白行、以#或;開頭的行都表示注釋,

[Unit]部分常見的設定引數如下:

[Unit]引數意義
Description使用systemctl list-units時會輸出的簡單說明
Documentation提供進一步的檔案查詢功能,可以是如下內容:
Documentation=http://www…, Documentation=man:sshd(8), 或Documentation=file:/etc/ssh/sshd_config
After說明此Unit在哪些服務啟動之后才會啟動,僅說明服務的啟動順序,并不是實際上的強制設定(與Requires不同)
Before與After剛好相反,但也僅僅是說明啟動順序
Requires明確定義此Unit必須在哪些服務啟動后才能啟動,如果后面接的服務沒有啟動,該Unit就不會被啟動
Wants與Requires剛好相反,定義最好在該Unit啟動之后再啟動的其他服務,如果后面接的服務沒有啟動,不會影響到該Unit本身
Conflicts沖突的服務,即不能與該Unit同時運行的其它服務

[Service]部分常見的設定引數如下:

[Service]引數意義
Type該服務啟動的方式,會影響到ExecStart,可以分為:
simple,默認值,郵ExecStart啟動,且啟動后常駐記憶體; forking,由ExecStart啟動的程式通過spawns延伸出其他子程式來作為此服務的主要服務,其原生的父程式在啟動結束后就會終止運行;oneshot,與simple類似,但該程式在作業完成后就會結束,不會常駐在記憶體中; dbus,與simple類似,但此服務必須在取得一個D-Bus名稱后才會繼續運行;idle,與simple類似,但是必須要等到所有作業都順利執行完畢后該服務才會執行,通常是開機程序中最后執行的服務,
EnvironmentFile指定啟動腳本的環境組態檔
ExecStart實際執行此服務的指令或腳本,與systemctl start有關
ExecStop關閉此服務時所執行的指令或腳本,與systemctl stop有關
ExecReload多載組態檔,與systemctl reload有關
Restart設定為1時,當此服務終止后,會自動再次啟動該服務
RemainAfterExit設定為1時,當此服務所屬的所有程式都終止以后,此服務會自動嘗試啟動
TimeoutSec此服務出現無法正常啟動或關閉時,在進入強制結束狀態前需要等待的時間
KillMode可以是以下三種模式中的一種:
process,此服務終止時,只會停止主要的程式(ExecStart中的指令);
control-group,由該服務產生的其他control-group程式也都會被關閉;
none,沒有程式會被關閉
RestartSec此服務被關閉后需要重啟時,重啟前需要等待的時間,預設為100ms

[Install]部分常見的設定引數如下:

[Install]引數意義
WantedBy后面接的大部分是*.target unit,表示該服務附掛在哪一個tagrget unit底下,一般是multi-user.target
Also當目前該服務被設定為開機自啟(enabled)時,后面接的服務也會被enable,通常是具有依賴性的其它服務
Alias設定別名

舉例:創建備份服務

假設我們要創建一個備份服務,

# 創建備份腳本
[root@study ~]$ vim /backups/backup.sh
#! /bin/bash

source="/etc /home /root /var/lib /var/spool/{cron.at.mail}"
target="/backups/backup-system-$(data +%Y-%m-%d).tar.gz"
[ ! -d /backups ] && mkdir /backups
tar -zcvf ${target} ${source} &> /backups/backup.log
[root@study ~]$ chmod a+x /backups/backup.sh

# 創建服務組態檔
[root@study ~]$ vim /etc/systemd/system/backup.service
[Unit]
Description=backup my server
Requires=atd.service  # 因為用到了at指令

[Service]
Type=simple
ExecStart=/bin/bash -c " echo /backups/backup.sh | at now"

[Install]
WantedBy=multi-user.target
[root@study ~]$ systemctl daemon-reload  # 多載服務組態檔
[root@study ~]$ systemctl start backup.service  # 運行一次備份服務
[root@study ~]$ systemctl status backup.service
backup.service - backup my server
   Loaded: loaded (/etc/systemd/system/backup.service; disabled)
   Acitve: inactive (dead)  # 備份服務執行完就停止了,并不會常駐記憶體

systemctl針對timer型別的組態檔

假設上面創建的backup.service服務需要定期執行,可以使用systemd的timer來處理,要使用timer功能,必須具備以下條件:

  • 系統的timer.target必須已經啟動;
  • backup.service服務已經創建;
  • backup.timer的時間啟動服務已創建,且設定為enabled,

.timer檔案的引數設定
可以在/etc/systemd/system/下建立timer檔案,其基本引數包括:

  • OnActiveSec:當timer.target啟動多久后才執行此服務;
  • OnBootSec:當開機多久后才執行此服務;
  • OnStartupSec:當systemd第一次啟動之后多久才執行此服務;
  • OnUnitActiveSec:此timer組態檔管理的unit服務在最后一次啟動后,隔多久后再執行一次;
  • OnUnitInactiveSec:此timer組態檔管理的unit服務在最后一次停止后,隔多久后再執行一次;
  • OnCalendar:按實際時間(非回圈時間)來啟動服務;
  • Unit:一般無需設定,默認為對應的服務名,即name.service對應name.timer;
  • Persistent:使用OnCalendar時,是否要持續進行,設定為yes即能滿足類似anacron的功能,

OnCalendar時間格式
基本的時間格式為“星期幾 YYYY-MM-DD HH:MM:SS”,例如Thu 2020-12-25 14:30:00
也可以使用時間間隔,包括毫秒ms、秒s、分鐘m、小時h、天數d、周數w、月month(s)、年y,比如,隔5天12小時30分鐘可以表示為30m 12h 5d,或者30min 12hours 5day
還可以使用口語化的時間表達方式,包括now、today、tomorrow、hourly、daily、weekly、monthly、+3h10m、2020-12-30等,

假設我們需要前面創建的備份服務backup.service每周日凌晨2點運行一次,創建對應的timer檔案如下,

[root@study ~]$ vim /etc/systemd/system/backup.timer
[Unit]
Description=backup my server timer

[Timer]
OnCalendar=Sun *-*-* 02:00:00
Persistent=true
Unit=backup.service

[Install]
WantedBy=multi-user.target
[root@study ~]$ systemctl daemon-reload  # 多載服務組態檔
[root@study ~]$ systemctl enable backup.timer
[root@study ~]$ systemctl start backup.timer
[root@study ~]$ systemctl show backup.timer
NextElapseUSecRealtime=50y 11month 3w 6d 23h 59min  ## 下一次執行需要等待的時間,與1970-01-01 00:00:00比較

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/243946.html

標籤:其他

上一篇:雙機主備Keepalived配置Nginx高可用,實作7x24不間斷服務

下一篇:Linux實驗5——Apache、虛擬主機

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more