2014-08-28 157 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默认值。