亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 21617 | 回復(fù): 5
打印 上一主題 下一主題

[其他] Centos7 以后,systemd.service 開機自啟動,如何啟動多個程序 [復(fù)制鏈接]

論壇徽章:
1
巨蟹座
日期:2014-03-18 23:44:30
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2016-05-31 13:53 |只看該作者 |倒序瀏覽
場景如下:
在服務(wù)器上已有一套服務(wù)程序,程序路徑大致如下:
app
    |- moduleA
    |- moduleB
    |- moduleC
每個模塊,都提供一類業(yè)務(wù)操作。其中 A 依賴 Mysql服務(wù),C 依賴 B 提供的服務(wù);并且 A 啟動起來后,會創(chuàng)建多個子進程。
現(xiàn)在需要 app 下的所有模塊隨開機自啟動起來。systemd 是否可以在一個 .service 文件中把這些模塊全都加載起來。
之前嘗試 把所有模塊的啟動腳本放在一個 shell 腳本里,然后在 .service 中把 execStart= 賦值該腳本的絕對路徑,但是這樣,服務(wù)并不能按預(yù)期啟動起來。

請教,systemd 如何書寫這類需求的配置文件?

論壇徽章:
41
操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-08-21 06:20:00每日論壇發(fā)貼之星
日期:2016-05-05 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-05-05 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-05-05 06:20:0015-16賽季CBA聯(lián)賽之山西
日期:2016-04-27 08:49:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-04-17 06:23:2815-16賽季CBA聯(lián)賽之吉林
日期:2016-03-25 15:46:3415-16賽季CBA聯(lián)賽之四川
日期:2016-03-25 14:26:19操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-05-27 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-08-18 06:20:00
2 [報告]
發(fā)表于 2016-06-02 17:27 |只看該作者
我記得是可以根據(jù)數(shù)字設(shè)置啟動服務(wù)順序的

論壇徽章:
1
巨蟹座
日期:2014-03-18 23:44:30
3 [報告]
發(fā)表于 2016-06-03 15:23 |只看該作者
jixuuse 發(fā)表于 2016-06-02 17:27
我記得是可以根據(jù)數(shù)字設(shè)置啟動服務(wù)順序的


我想過把每個模塊弄成一個 .service 這樣確實是可以很好的解決模塊依賴問題。

可是我想要用一個腳按照順序依次啟動所有模塊,然后寫一個 .service 單元文件來就可以了。以后我要刷新程序的時候,直接依次 systemctl restart my_program 就可以了。

不知道還有沒有什么好的辦法!

另: 我發(fā)現(xiàn)我把這個腳本放在 /etc/rc.local 里面,然后修改 rc-local.service 的單元文件,添加 After=Mysql 依賴,可以迂回實現(xiàn)上面的要求,但是我認(rèn)為知不是最理想的解決辦法。

論壇徽章:
41
操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-08-21 06:20:00每日論壇發(fā)貼之星
日期:2016-05-05 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-05-05 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-05-05 06:20:0015-16賽季CBA聯(lián)賽之山西
日期:2016-04-27 08:49:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-04-17 06:23:2815-16賽季CBA聯(lián)賽之吉林
日期:2016-03-25 15:46:3415-16賽季CBA聯(lián)賽之四川
日期:2016-03-25 14:26:19操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-05-27 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-08-18 06:20:00
4 [報告]
發(fā)表于 2016-06-03 16:17 |只看該作者
不要想太多了

我見過不少已經(jīng)是電信核心設(shè)備級別的linux服務(wù)器,啟動程序還是人工執(zhí)行1.sh 2.sh 3.sh

論壇徽章:
41
操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-08-21 06:20:00每日論壇發(fā)貼之星
日期:2016-05-05 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-05-05 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-05-05 06:20:0015-16賽季CBA聯(lián)賽之山西
日期:2016-04-27 08:49:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-04-25 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-04-17 06:23:2815-16賽季CBA聯(lián)賽之吉林
日期:2016-03-25 15:46:3415-16賽季CBA聯(lián)賽之四川
日期:2016-03-25 14:26:19操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-05-27 06:20:00操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-05-28 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-08-18 06:20:00
5 [報告]
發(fā)表于 2016-06-03 16:23 |只看該作者
本帖最后由 jixuuse 于 2016-06-03 16:25 編輯
  1. systemd使用并行的方法啟動服務(wù),不像SysV init是順序執(zhí)行的,所以大大節(jié)省了系統(tǒng)啟動時間。
  2. 使用并行啟動,最大的難點是要解決服務(wù)之間的依賴性,systemd的解決辦法是使用類似緩沖池的辦法。比如對TCP有依賴的服務(wù),在啟動的時候會檢查依賴服務(wù)的TCP端口,systemd會把對TCP端口的請求先緩存起來,當(dāng)依賴的服務(wù)器啟動之后,在將請求傳遞給服務(wù),使兩個服務(wù)通訊。同樣的進程間通訊的D-BUS也是這樣的原理,目錄掛載則是先讓服務(wù)以為目錄被掛載了,到真正訪問目錄的時候,才去真正操作。
復(fù)制代碼
你看看這個

http://www.jinbuguo.com/systemd/systemd.service.html
  1. 自動依賴

  2.     設(shè)置了 Type=dbus 的服務(wù)會自動添加 Requires=dbus.socket 與 After=dbus.socket 依賴

  3.     基于套接字激活的服務(wù)會自動添加對與其相關(guān)的 .socket 單元的 After= 依賴。

  4.     除非明確設(shè)置了 DefaultDependencies=false ,否則 service 單元都自動隱含如下依賴:
  5.         Requires=sysinit.target
  6.         After=sysinit.target
  7.         After=basic.target
  8.         Conflicts=shutdown.target
  9.         Before=shutdown.target
  10.     這樣可以確保普通的服務(wù)單元:(1)在基礎(chǔ)系統(tǒng)啟動完畢之后才開始啟動,(2)在關(guān)閉系統(tǒng)之前先被干凈的停止。
  11.     只有那些需要在系統(tǒng)啟動的早期就必須啟動的服務(wù),以及那些必須在關(guān)機動作的結(jié)尾才能停止的服務(wù)才需要設(shè)置 DefaultDependencies=false 。

  12.     systemd.exec(5) 與 systemd.resource-control(5) 中的某些資源限制選項也會自動隱含的添加一些其他的依賴關(guān)系。
復(fù)制代碼

論壇徽章:
1
巨蟹座
日期:2014-03-18 23:44:30
6 [報告]
發(fā)表于 2016-06-03 17:55 |只看該作者
其實或多或少 看過一部分, 只是看了些皮毛,很多東西沒搞懂。在此請教!

在重新描述下問題吧。
每個需要啟動的模塊,啟動起來之后就不會退出。這樣,如果把所有東西放在一個腳本里,比如:
  1. #! /bin/sh
  2. start moduleA
  3. start moduleB
  4. start moduleC
復(fù)制代碼
因為 moduleA 起來之后不退出,所以 start moduleB 就沒有機會執(zhí)行.

簡單情況就是這樣的, 要是有好方法能夠滿足這個需求就太好了。 或者大家如果有,給我個類似的 Demo 也可以。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP