【发布时间】:2014-08-28 04:34:09
【问题描述】:
我想在运行 raspbian wheezy 的 Raspberry Pi 启动后运行以下命令:
sudo gcc -lpthread server.c -o wifiserver.osudo ./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 没有给出警告和错误。
【问题讨论】:
-
为什么要在重启时重新编译二进制文件??
-
sudo在这里毫无意义且可能有害。初始化脚本已经拥有它需要的所有权限。 -
将编译后的二进制文件放入
/usr/local/bin并更改脚本以从那里运行它。检查您的系统日志以获取失败或警告消息。如果您需要帮助解释它们,请在此处发布它们。 -
您好,谢谢...我将可执行文件放在 /usr/local/bin 文件夹中...我没有正确提供文件路径...我想它可以与 / home/pi/wifiserver.o 也因为我的可执行文件在那里。谢谢!! @tripleee
-
发布固定脚本作为答案并接受它,这样这个问题就不再显示为未解决。谢谢。
标签: linux bash raspberry-pi raspbian init.d