Shell脚本在启动后不会对树莓派执行
问题描述:
我只想树莓派的启动后运行下面的命令运行raspbian喘息:Shell脚本在启动后不会对树莓派执行
sudo gcc -lpthread server.c -o wifiserver.o
sudo ./wifiserver.o
我创建以下文件并执行以下步骤:
创建了一个名为
auto_server_start
的脚本文件。-
内容如下:
#!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
复制该文件名为
auto_server_start
到/etc/init.d/
目录,并添加使用chmod +x
执行权限。然后
sudo update-rc.d auto_server_start defaults
。
它给了mathkernel一些警告,但我认为这与我的脚本没有任何关系。
但是,在软重启时,我检查了ps -e
以及top
,我的wifiserver
进程无处显示。
请建议。
PS:我检查了命令gcc
和./wifiserver.o
没有提供警告和错误。
答
创建了一个名为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默认值。
你为什么要在重新启动时重新编译二进制文件? – tripleee 2014-08-28 04:38:11
'sudo'在这里毫无意义且可能有害。初始化脚本已经拥有它所需的所有权限。 – tripleee 2014-08-28 04:39:19
将编译后的二进制文件放到'/ usr/local/bin'中,并将脚本从那里改为运行它。检查系统日志中是否有失败或警告消息。如果您需要帮助解释他们,请在这里发布。 – tripleee 2014-08-28 04:44:31