欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Ubuntu設(shè)置程序開(kāi)機(jī)自啟動(dòng)的操作步驟

 更新時(shí)間:2025年06月08日 14:16:22   作者:mahuifa  
在部署程序到邊緣端時(shí),我們總希望可以通電即啟動(dòng)我們寫(xiě)好的程序,本篇博客用以記錄如何在ubuntu開(kāi)機(jī)執(zhí)行某條命令或者某個(gè)可執(zhí)行程序,需要的朋友可以參考下

1、概述

測(cè)試環(huán)境:ubuntu22.04 帶圖形界面
實(shí)現(xiàn)方式1:通過(guò)圖形界面的【啟動(dòng)應(yīng)用程序】設(shè)置開(kāi)機(jī)自啟動(dòng);
實(shí)現(xiàn)方式2:通過(guò)配置為服務(wù)實(shí)現(xiàn)開(kāi)機(jī)自啟動(dòng)。

2、圖形界面設(shè)置

優(yōu)點(diǎn):

  • 圖形界面
  • 使用簡(jiǎn)單

缺點(diǎn):

  • 靈活性差,如果啟動(dòng)有依賴或者需要實(shí)現(xiàn)守護(hù)進(jìn)程只能通過(guò)寫(xiě)shell腳本實(shí)現(xiàn)。

找到【啟動(dòng)應(yīng)用程序】;

點(diǎn)擊【添加】,然后在【命令】欄輸入需要啟動(dòng)的可執(zhí)行程序路徑,名稱隨便填。

點(diǎn)擊【保存】后,在系統(tǒng)啟動(dòng)后會(huì)自動(dòng)啟動(dòng)添加的可執(zhí)行程序。

配置文件保存在~/.config/autostart文件夾下。

3、設(shè)置為Systemd服務(wù)

優(yōu)點(diǎn):

  • 功能強(qiáng)大,使用靈活;
  • 支持設(shè)置程序啟動(dòng)依賴,例如在網(wǎng)絡(luò)準(zhǔn)備好了后再啟動(dòng);

缺點(diǎn):

  • 沒(méi)有圖形界面,使用較為復(fù)雜;

官方文檔

進(jìn)入/etc/systemd/system文件夾;

創(chuàng)建一個(gè).service后綴的文件,名稱自定;

文件中填入啟動(dòng)服務(wù)的配置信息,如下所示;

[Unit]
Description=WebServer    # 簡(jiǎn)單描述服務(wù)
After=network.target     # 指定服務(wù)模塊啟動(dòng)后再啟動(dòng)(網(wǎng)絡(luò)模塊啟動(dòng))

[Service]
User=mhf                 # 設(shè)置服務(wù)運(yùn)行的用戶,帶圖形界面的程序最好使用普通用戶運(yùn)行,否則可能會(huì)啟動(dòng)失敗,自己系統(tǒng)的用戶名
WorkingDirectory=/home/mhf/Code/bin64      # 設(shè)置進(jìn)程的工作目錄
ExecStart=/home/mhf/Code/bin64/ChatServer  # 設(shè)置啟動(dòng)的可執(zhí)行程序路徑
Restart=always                             # 設(shè)置進(jìn)程 退出后的重啟方式 always:總是重啟
RestartSec=5                               # 重啟服務(wù)之前需要等待的秒數(shù)
Environment=DISPLAY=:0   # 帶圖形界面的程序必須指定運(yùn)行桌面環(huán)境,否則會(huì)啟動(dòng)失敗
# 環(huán)境變量 DISPLAY 告訴GUI程序如何與GUI通信。Unix系統(tǒng)可以運(yùn)行多個(gè)X服務(wù)器,即多個(gè)顯示。這些顯示可以是物理顯示(一個(gè)或多個(gè)監(jiān)視器),或遠(yuǎn)程顯示(通過(guò)網(wǎng)絡(luò)轉(zhuǎn)發(fā),例如通過(guò)SSH),或虛擬顯示,如Xvfb等。指定顯示的基本語(yǔ)法是 HOST:NUMBER ;如果忽略 HOST 部分,則顯示為本地顯示。
# 顯示從0開(kāi)始編號(hào),因此 :0 是啟動(dòng)的第一個(gè)本地顯示。在典型的設(shè)置中,這是顯示在計(jì)算機(jī)顯示器上的內(nèi)容。

[Install]
WantedBy=multi-user.target
  • 常用配置說(shuō)明
[Unit]    # 啟動(dòng)順序與依賴關(guān)系。
Description:對(duì)當(dāng)前服務(wù)的簡(jiǎn)單描述。
After:指定.serive在哪些服務(wù)之后進(jìn)行啟動(dòng);
Before:指定.serive在哪些服務(wù)之前進(jìn)行啟動(dòng);
除上述內(nèi)容,文件中還可能出現(xiàn)以下內(nèi)容:
Requires:指定服務(wù)依賴于哪些服務(wù)(強(qiáng)依賴關(guān)系,一旦所依賴服務(wù)異常,當(dāng)前服務(wù)也隨之停止);
Wants:指定服務(wù)依賴于哪些服務(wù)(弱依賴關(guān)系,所依賴服務(wù)異常不影響當(dāng)前服務(wù)正常運(yùn)行)。

[Service]   # 啟動(dòng)行為
Type:定義啟動(dòng)類型??稍O(shè)置:simple,exec,forking,oneshot,dbus,notify,idle。
simple:ExecStart 字段啟動(dòng)的進(jìn)程為該服務(wù)的主進(jìn)程;
forking:ExecStart 字段的命令將以 fork() 方式啟動(dòng),此時(shí)父進(jìn)程將會(huì)退出,子進(jìn)程將成為主進(jìn)程;
ExecStart:定義啟動(dòng)進(jìn)程時(shí)執(zhí)行的命令;
ExecStop:停止服務(wù)時(shí)執(zhí)行的命令;
除上述內(nèi)容外,文件中還可能出現(xiàn):
EnvironmentFile:環(huán)境配置文件,用來(lái)指定當(dāng)前服務(wù)啟動(dòng)的環(huán)境變量;
ExecReload:重啟服務(wù)時(shí)執(zhí)行的命令;
ExecStartPre:?jiǎn)?dòng)服務(wù)之前執(zhí)行的命令;
ExecStartPost:?jiǎn)?dòng)服務(wù)之后執(zhí)行的命令;
ExecStopPost:停止服務(wù)之后執(zhí)行的命令;
RemainAfterExit:設(shè)為yes,表示進(jìn)程退出以后,服務(wù)仍然保持執(zhí)行;
RestartSec:重啟服務(wù)之前需要等待的秒數(shù)。
KillMode:定義 Systemd 如何停止服務(wù),可以設(shè)置的值如下:
    control-group(默認(rèn)值):當(dāng)前控制組里面的所有子進(jìn)程,都會(huì)被殺掉;
    process:只殺主進(jìn)程;
    mixed:主進(jìn)程將收到 SIGTERM 信號(hào),子進(jìn)程收到 SIGKILL 信號(hào);
    none:沒(méi)有進(jìn)程會(huì)被殺掉。
Restart:定義了退出后,Systemd 的重啟方式,可以設(shè)置的值如下:
    no(默認(rèn)值):退出后不會(huì)重啟;
    on-success:當(dāng)進(jìn)程正常退出時(shí)(退出狀態(tài)碼為0),才會(huì)重啟;
    on-failure:當(dāng)進(jìn)程非正常退出時(shí)(退出狀態(tài)碼非0),包括被信號(hào)終止和超時(shí),才會(huì)重啟;
    on-abnormal:當(dāng)被信號(hào)終止和超時(shí),才會(huì)重啟;
    on-abort:當(dāng)收到?jīng)]有捕捉到的信號(hào)終止時(shí),才會(huì)重啟;
    on-watchdog:看門狗超時(shí)退出,才會(huì)重啟;
    always:總是重啟。
 
[Install]  # 區(qū)塊
Install一般填為WantedBy=multi-user.target,表示多用戶環(huán)境下服務(wù)被啟用。
  • 配置完成后加載服務(wù)配置,用于服務(wù)文件修改后的配置更新。
sudo systemctl daemon-reload 
  • 立即啟動(dòng)服務(wù)
sudo systemctl start <service_name>
# 例如
sudo systemctl start ChatServer.service
sudo systemctl start ChatServer
  • 停止服務(wù)
sudo systemctl stop <service_name>
# 例如
sudo systemctl stop ChatServer.service

錯(cuò)誤信息 :如果GUI程序沒(méi)設(shè)置使用普通用戶啟動(dòng)、沒(méi)有設(shè)置Environment=DISPLAY=:0就會(huì)報(bào)錯(cuò)

11月 25 17:48:30 mhf-virtual-machine systemd[1]: Stopped WebServer.
11月 25 17:48:30 mhf-virtual-machine systemd[1]: Started WebServer.
11月 25 17:48:30 mhf-virtual-machine ChatServer[5154]: Authorization required, but no authorization protocol specified
11月 25 17:48:30 mhf-virtual-machine ChatServer[5154]: qt.qpa.xcb: could not connect to display :0
11月 25 17:48:30 mhf-virtual-machine ChatServer[5154]: qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
11月 25 17:48:30 mhf-virtual-machine ChatServer[5154]: This application failed to start because no Qt platform plugin could be initialized.  Reinstalling the application may fix this problem.
11月 25 17:48:30 mhf-virtual-machine ChatServer[5154]: Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.
11月 25 17:48:30 mhf-virtual-machine systemd[1]: ChatServer. service: Main process exited, code=dumped, status=6/ABRT
11月 25 17:48:30 mhf-virtual-machine systemd[1]: ChatServer. service: Failed with result 'core-dump'.

以上就是Ubuntu設(shè)置程序開(kāi)機(jī)自啟動(dòng)的操作步驟的詳細(xì)內(nèi)容,更多關(guān)于Ubuntu程序開(kāi)機(jī)自啟動(dòng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • apache time_wait連接數(shù)太多問(wèn)題解決方法

    apache time_wait連接數(shù)太多問(wèn)題解決方法

    這篇文章主要介紹了apache time_wait連接數(shù)太多問(wèn)題解決方法,本文使用調(diào)整內(nèi)核參數(shù)來(lái)解決,需要的朋友可以參考下
    2014-11-11
  • 在linux下升級(jí)軟件包版本等方法詳解

    在linux下升級(jí)軟件包版本等方法詳解

    今天小編就為大家分享一篇在linux下升級(jí)軟件包版本等方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • linux下的dhcp服務(wù)的完全配置(圖文詳解)

    linux下的dhcp服務(wù)的完全配置(圖文詳解)

    linux下的dhcp服務(wù)的完全配置詳解,需要的朋友可以參考下
    2012-10-10
  • Linux下Apache安裝/增加mod_rewrite模塊的方法

    Linux下Apache安裝/增加mod_rewrite模塊的方法

    如果你的apache已經(jīng)安裝好了,現(xiàn)在只想編譯出mod_rewrite.so模塊,在apache中進(jìn)行加載,下面我們就介紹這個(gè)方法。
    2011-04-04
  • Linux系統(tǒng)多網(wǎng)卡環(huán)境下的路由配置詳解

    Linux系統(tǒng)多網(wǎng)卡環(huán)境下的路由配置詳解

    這篇文章主要介紹了Linux系統(tǒng)多網(wǎng)卡環(huán)境下的路由配置詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • linux下配置yum源方法詳解

    linux下配置yum源方法詳解

    本篇文章主要介紹了linux下配置yum源方法詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • Gzip在apache2中的設(shè)置和squid對(duì)它的處理

    Gzip在apache2中的設(shè)置和squid對(duì)它的處理

    gzip可以級(jí)大的加速網(wǎng)站.有時(shí)壓縮比率高到80%,近來(lái)測(cè)試了一下,最少都有40%以上,還是相當(dāng)不錯(cuò)的.在Apache2之后的版本,模塊名不叫g(shù)zip,而叫mod_deflate
    2011-12-12
  • CentOS 7中使用Squid提供HTTP代理詳解

    CentOS 7中使用Squid提供HTTP代理詳解

    這篇文章主要給大家介紹了在CentOS 7中使用Squid提供HTTP代理的相關(guān)資料,以及及客戶端的代理配置的方法,需要的朋友可以參考學(xué)習(xí),下面來(lái)一起看看吧。
    2017-04-04
  • Linux lsof命令使用詳解

    Linux lsof命令使用詳解

    這篇文章主要介紹了Linux lsof命令使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Linux環(huán)境下生成openssl證書(shū)注意細(xì)節(jié)介紹

    Linux環(huán)境下生成openssl證書(shū)注意細(xì)節(jié)介紹

    大家好,本篇文章主要講的是Linux環(huán)境下生成openssl證書(shū)注意細(xì)節(jié)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12

最新評(píng)論