Linux 設定程式開機自動啟動

2021-09-26 16:38:37 字數 3918 閱讀 9870

目錄

1. 基礎說明

2. 編輯啟動檔案

3. 給啟動檔案新增許可權

4. 設定軟連線

將程式設定為開機啟動的方法不止一種,這裡記錄的,應該是最常用的一種。

root使用者執行命令:ll /etc/rc.d/

可以看到有下面這些檔案:

[centos@ip-172-31-42-26 init.d]$ ll /etc/rc.d/

總用量 16k

drwxr-xr-x. 10 root root 127 10/30 22:57 .

drwxr-xr-x. 85 root root 8.0k 06/02 03:42 ..

drwxr-xr-x. 2 root root 70 06/02 03:10 init.d

drwxr-xr-x. 2 root root 45 10/30 22:57 rc0.d

drwxr-xr-x. 2 root root 45 10/30 22:57 rc1.d

drwxr-xr-x. 2 root root 45 10/30 22:57 rc2.d

drwxr-xr-x. 2 root root 45 10/30 22:57 rc3.d

drwxr-xr-x. 2 root root 45 10/30 22:57 rc4.d

drwxr-xr-x. 2 root root 45 10/30 22:57 rc5.d

drwxr-xr-x. 2 root root 45 10/30 22:57 rc6.d

-rw-r--r--. 1 root root 473 04/25 17:19 rc.local

其中 rc0~6.d 中的 0~6 代表執行級別:

0:系統停機(關機)模式,系統預設執行級別不能設定為0,否則不能正常啟動,一開機就自動關機。

1:單使用者模式,root許可權,用於系統維護,禁止遠端登陸,就像windows下的安全模式登入。

2:多使用者模式,沒有nfs網路支援。

3:完整的多使用者文字模式,有nfs,登陸後進入控制台命令列模式。

4:系統未使用,保留一般不用,在一些特殊情況下可以用它來做一些事情。例如在膝上型電腦的電池用盡時,可以切換到這個模式來做一些設定。

5:圖形化模式,登陸後進入圖形gui模式或gnome、kde圖形化介面,如x window系統。

6:重啟模式,預設執行級別不能設為6,否則不能正常啟動,就會一直開機重啟開機重啟。

設定程式開機啟動,要做的事情就是:

#!/bin/bash

### begin init info

# provides: neucrack

# required-start: $remote_fs $syslog $network $named

# required-stop: $remote_fs $syslog $network

# should-start: $network $portmap

# should-stop: $network $portmap

# x-start-before: nis

# x-stop-after: nis

# default-start: 3 5

# default-stop: 0 1 2 4 6

# x-interactive: true

# short-description: ss auto start script

# description: shadowsocks auto start script,

# this file should be used to construct scripts to be

# placed in /etc/init.d.

### end init info

case "$1" in

start)

`nohup ssserver -c /opt/config/shadowsocks.json > ~/backup/temp/connect.log 2>&1 &`

;;stop)

`nohup ps aux | grep ssserver | awk '' | xargs kill -9 2>&1 &`

;;restart)

$0 stop

$0 start

;;*)

echo "usage: $0 "

exit 1

;;esac

需要注意的是,啟動命令不要是阻塞式的,避免指令碼執行之後等待輸入。

執行命令:chmod +x ssserverctl

[root@izj6ca57bbyivzigu89mfoz:init.d]$ ll

總用量 64

-rwxr-xr-x 1 root root 972 8月 25 23:36 ssserverctl

設定完成之後,可以執行下面的命令來檢查指令碼是否有效(start/stop對應指令碼裡面的引數):

/etc/init.d/ssserverctl start

/etc/init.d/ssserverctl stop

設定軟連線的時候,要注意命名規則。

檢視已有的軟連線:ll /etc/rc.d/rc3.d/

[root@izj6ca57bbyivzigu89mfoz:init.d]$ ll /etc/rc.d/rc3.d/

總用量 0

lrwxrwxrwx. 1 root root 20 8月 18 2017 k50netconsole -> ../init.d/netconsole

lrwxrwxrwx. 1 root root 17 8月 18 2017 s10network -> ../init.d/network

lrwxrwxrwx 1 root root 22 8月 24 2017 s15staragentctl -> ../init.d/staragentctl

lrwxrwxrwx 1 root root 15 8月 13 19:42 s50aegis -> ../init.d/aegis

lrwxrwxrwx 1 root root 16 8月 13 19:42 s64mysqld -> ../init.d/mysqld

lrwxrwxrwx 1 root root 19 8月 24 2017 s85apachectl -> ../init.d/apachectl

lrwxrwxrwx 1 root root 17 8月 24 2017 s85php-fpm -> ../init.d/php-fpm

lrwxrwxrwx 1 root root 23 8月 25 23:42 s91ssserverctl -> /etc/init.d/ssserverctl

可以發現在啟動指令碼前面都加了 「k數字」,或者 「s數字」

其中 k 表示 kill 某個程式,s 表示 start 某個程式

後面緊跟著的數字,表示啟動/停止某個程式的順序,數字越小的越先啟動(數字的具體值可以自己根據情況自行設定)

我這裡設定軟連線用的命令是:

ln -s /etc/init.d/ssserverctl /etc/rc3.d/s91ssserverctl
如果要設定程式關機自動停止,可以新增乙個軟連線:

ln -s /etc/init.d/ssserverctl /etc/rc0.d/k91ssserverctl
如此設定之後,開機重啟,檢查程式是否可以開機自動啟動。

設定MFC程式開機自動啟動

設定程式開機啟動 bool autobootset 得到程式自身的全路徑 dword dwret getmodulefilename null,pfilename,max path tcscat pfilename,t auto 新增乙個子key,並設定值,下面應用程式名字 不加字尾.exe 關閉登...

linux設定開機服務自動啟動

linux設定開機服務自動啟動 root localhost chkconfig list 顯示開機可以自動啟動的服務 root localhost chkconfig add 新增開機自動啟動 服務 root localhost chkconfig del 刪除開機自動啟動 服務 www.2cto...

linux設定開機服務自動啟動

linux設定開機服務自動啟動 root localhost chkconfig list 顯示開機可以自動啟動的服務 root localhost chkconfig add 新增開機自動啟動 服務 root localhost chkconfig del 刪除開機自動啟動 服務 www.2cto...