2014-08-28 179 views
2

我只想樹莓派的啓動後運行下面的命令運行raspbian喘息:Shell腳本在啓動後不會對樹莓派執行

  1. sudo gcc -lpthread server.c -o wifiserver.o
  2. sudo ./wifiserver.o

我創建以下文件並執行以下步驟:

  1. 創建了一個名爲auto_server_start的腳本文件。

  2. 內容如下:

    #!bin/bash 
    # /etc/init.d/auto_server_start 
    ### BEGIN INIT INFO 
    # Provides: auto_server_start 
    # Required-Start: $all 
    # Required-Stop: $remote_fs $syslog 
    # Default-Start: 2 3 4 5 
    # Default-Stop: 0 1 6 
    # Short-Description: wifi server script 
    # Description: Start wifi server at bootup 
    ### END INIT INFO 
    
    case "$1" in 
        start) 
        echo "running server program" 
        sudo gcc -lpthread server.c -o wifiserver.o 
        sudo ./wifiserver.o 
        ;; 
        stop) 
        echo "stopping customized script" 
        ;; 
        *) 
        echo "Usage: /etc/init.d/auto_server_start start|stop" 
        exit 1 
        ;; 
    esac 
    
    exit 0 
    
  3. 複製該文件名爲auto_server_start/etc/init.d/目錄,並添加使用chmod +x執行權限。

  4. 然後sudo update-rc.d auto_server_start defaults

它給了mathkernel一些警告,但我認爲這與我的腳本沒有任何關係。

但是,在軟重啓時,我檢查了ps -e以及top,我的wifiserver進程無處顯示。

請建議。

PS:我檢查了命令gcc./wifiserver.o沒有提供警告和錯誤。

+1

你爲什麼要在重新啓動時重新編譯二進制文件? – tripleee 2014-08-28 04:38:11

+1

'sudo'在這裏毫無意義且可能有害。初始化腳本已經擁有它所需的所有權限。 – tripleee 2014-08-28 04:39:19

+2

將編譯後的二進制文件放到'/ usr/local/bin'中,並將腳本從那裏改爲運行它。檢查系統日誌中是否有失敗或警告消息。如果您需要幫助解釋他們,請在這裏發佈。 – tripleee 2014-08-28 04:44:31

回答

2

創建了一個名爲auto_server_start的腳本文件。

內容如下:!

#斌/慶典

#的/ etc /初始化。d/auto_server_start

### BEGIN INIT INFO

#提供:auto_server_start

#所需的啓動:$所有

#所需-停止:$ remote_fs $系統日誌

#默認開始:2 3 4 5

#默認停止:0 1 6

#短說明:無線服務器腳本

#說明:

開始在啓動

### END INIT INFO

情況下 「$ 1」 開始的WiFi服務器)

echo "running server program" 

/usr/local/bin/wifiserver.o 

;; 

stop)

echo "stopping customized script" 

;; 

*)

echo "Usage: /etc/init.d/auto_server_start start|stop" 

exit 1 

;; 

ESAC

退出0

複製該文件名爲auto_server_start到/etc/init.d/中的目錄和執行添加使用chmod + X許可。

然後sudo update-rc.d auto_server_start默認值。