[問題][已解決] CentOS 7 Systemd 設定

看板Linux作者 (嗨 吉米)時間11年前 (2014/12/09 00:56), 11年前編輯推噓1(1016)
留言17則, 3人參與, 最新討論串1/1
大家好 目前,把自己裝的服務為了能開機啟動 所以加入rc.local 但是,那兩個服務是會執行完之後就停在畫面 TirinityCorever 下的兩個服務 authserver worldserver 現在變成無法開機完成,會卡在rc.local的地方 如圖 http://ppt.cc/9H05 1.要如何把rc.local改回來,讓開機完成? 剛剛洗完澡,他就自己跑到可以登入的畫面,所以問題解決了 2.應該怎麼做才能正確在開機啟動這兩項服務,須在MariaDB之後啟動 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.126.247.232 ※ 文章網址: http://www.ptt.cc/bbs/Linux/M.1418057790.A.9CA.html

12/09 02:25, , 1F
進 grub 然後編輯選單項目,於啟動內 linux6 這類行
12/09 02:25, 1F

12/09 02:25, , 2F
後面傳入 single 進入,輸入 root 密碼之後去修改
12/09 02:25, 2F

12/09 02:26, , 3F
你要用 rc.local 啟動,該程式是前景模式運作,所以
12/09 02:26, 3F

12/09 02:26, , 4F
程式名稱後面要多傳入 & 才會跑背景不影響運作
12/09 02:26, 4F

12/09 02:27, , 5F
rc.local 基本上算是過時了,有空可以查一下 systemd
12/09 02:27, 5F

12/09 02:27, , 6F
可以自己編寫 unit 放置然後設定啟動
12/09 02:27, 6F
感謝你,我會在翻翻資料 ※ 編輯: HiJimmy (59.126.247.232), 12/09/2014 02:42:06

12/09 17:37, , 7F
學一下systemd吧 你的需求systemd很好弄
12/09 17:37, 7F
是下面這樣寫嗎? [Unit] Description=WOW AuthServer [Service] Type=simple BusName=org.freedesktop.NetworkManager ExecStart=cd /usr/wowserver ./bin/authserver 之後另存成authserver.service放到 /usr/lib/systemd/system 這樣沒錯吧? 關機的時候需要把他關掉嗎? ※ 編輯: HiJimmy (59.126.247.232), 12/09/2014 18:38:41

12/09 19:46, , 8F
應該放進 /etc/systemd/system?
12/09 19:46, 8F
這點是因為我看預設得都放在那

12/09 19:47, , 9F
BusName 填 NetworkManager 看起來不太對,如果沒有你的
12/09 19:47, 9F

12/09 19:47, , 10F
server 沒有用 D-Bus 那就不能填
12/09 19:47, 10F

12/09 19:49, , 11F
ExecStart 後面接的不是 shell 指令,所以不能用 cd
12/09 19:49, 11F

12/09 19:49, , 12F
可以改用 WorkingDirectory
12/09 19:49, 12F
已可以啟動如下 目錄為/lib/systemd/system [Unit] Description=WOW AuthServer After=network.target [Service] ExecStart=/usr/wowserver/bin/authserver [Unit] Description=WOW WorldServer [Service] WorkingDirectory=/usr/wowserver ExecStart=/usr/wowserver/bin/worldserver

12/09 20:52, , 13F
系統安裝的放 /lib/systemd,自己加的可放 /etc/systemd
12/09 20:52, 13F
感謝你 再差一步就完工了 試了重開機,都不行啟動,因為Mariadb尚未啟動 啟動後,用手動啟動,就可以了 ※ 編輯: HiJimmy (59.126.247.232), 12/16/2014 19:29:19


12/16 19:36, , 15F
#Handling_dependencies
12/16 19:36, 15F

12/16 19:37, , 16F
在systemd裡可以指定啟動相依性的
12/16 19:37, 16F
剛剛有試過加Wants=mariadb.target 還是錯誤 也試過 After=network.target,mariadb.target 是我誤會Wiki還那哪裡有問題? 還有個問題,就是我會用到網路,所以,用 After=network.target 這樣是對的嗎? 我是從其他人要啟用網路服務的腳本 抄來的

12/16 20:29, , 17F
應該是 mariadb.service 才對?
12/16 20:29, 17F
Requires跟Wants都試過了錯誤一樣 圖為錯誤訊息 http://ppt.cc/yH2F 我看起來是卡在資料庫連線的部分,是這樣吧? 終於OK了 正確設定如下 [Unit] Description=WOW AuthServer After=network.target mariadb.service [Service] ExecStart=/usr/wowserver/bin/authserver [Install] WantedBy=multi-user.target [Unit] Description=WOW WorldServer After=network.target mariadb.service [Service] Type=simple WorkingDirectory=/usr/wowserver ExecStart=/usr/wowserver/bin/worldserver [Install] WantedBy=multi-user.target 感謝Linux板 ※ 編輯: HiJimmy (59.126.247.232), 12/17/2014 18:20:49
文章代碼(AID): #1KXTW-dA (Linux)