2014-03-01 102 views
6

我想在启动Raspberry Pi时启动thin Web服务器。在启动时在Raspberry PI上启动瘦服务器

我在/etc/thin/myapp.yml

--- 
chdir: "/home/pi/web-interface/current" 
environment: production 
address: 0.0.0.0 
port: 3000 
timeout: 30 
log: "/home/pi/web-interface/shared/tmp/sockets/log/thin.log" 
pid: tmp/pids/thin.pid 
max_conns: 1024 
max_persistent_conns: 100 
require: [] 
wait: 30 
threadpool_size: 20 
servers: 1 
daemonize: true 

所需的配置文件我没有这个作为一个运行级别命令来安装薄:

thin install 
sudo /usr/sbin/update-rc.d -f thin defaults 

从第二个命令我碰到下面的日志输出

update-rc.d: using dependency based boot sequencing 
update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match thin Default-Stop values (S 0 1 6) 
insserv: warning: current stop runlevel(s) (0 1 6) of script `thin' overrides LSB defaults (0 1 6 S). 

当我运行/etc/init.d/thin start服务器启动没有问题所以设备启动时似乎出现了问题。

这是/etc/init.d/thin

#!/bin/sh 
### BEGIN INIT INFO 
# Provides:   thin 
# Required-Start: $local_fs $remote_fs 
# Required-Stop:  $local_fs $remote_fs 
# Default-Start:  2 3 4 5 
# Default-Stop:  S 0 1 6 
# Short-Description: thin initscript 
# Description:  thin 
### END INIT INFO 

# Original author: Forrest Robertson 

# Do NOT "set -e" 

# DAEMON=/home/pi/.rvm/gems/ruby-2.1.0/bin/thin 
DAEMON=/home/pi/.rvm/wrappers/raspberrypi/thin 
SCRIPT_NAME=/etc/init.d/thin 
CONFIG_PATH=/etc/thin 

# Exit if the package is not installed 
[ -x "$DAEMON" ] || exit 0 

case "$1" in 
    start) 
     say "Starting thin" 
    $DAEMON start --all $CONFIG_PATH 
    ;; 
    stop) 
     say "Stopping thin" 
    $DAEMON stop --all $CONFIG_PATH 
    ;; 
    restart) 
    $DAEMON restart --all $CONFIG_PATH 
    ;; 
    *) 
    echo "Usage: $SCRIPT_NAME {start|stop|restart}" >&2 
    exit 3 
    ;; 
esac 

: 

现在我的服务器不正确,即使我在开机登录以下条目启动起来:

Sat Mar 1 08:19:45 2014: [start] /etc/thin/myapp.yml ... 
Sat Mar 1 08:19:52 2014: [....] Starting NTP server: ntpd^[[?25l^[[?1c^[7^[[1G[^[[32m ok ^[[39;49m^[8^[[?25h^[[?0c. 
Sat Mar 1 08:19:54 2014: [....] Starting OpenBSD Secure Shell server: sshd^[[?25l^[[?1c^[7^[[1G[^[[32m ok ^[[39;49m^[8^[[?25h^[[?0c. 
Sat Mar 1 08:19:56 2014: Starting server on 0.0.0.0:3000 ... 
Sat Mar 1 08:19:56 2014: 
+0

您是否考虑过使用nginx + passenger?请参阅https://github.com/meinside/rails-on-raspberrypi或http://brianmilco.blogspot.de/2013/02/chiliproject-nginx-and-passenger-on.html#!/2013/02/chiliproject -nginx-and-passenger-on.html作为首发... – theldoria

+0

为什么你会选择这个选项。我很喜欢这个事实,即它在开发时与轨道集成良好。只需将gem添加到Gemfile并按照正常情况启动服务器:'rails s'。 – Besi

+1

毫无疑问,它的发展很好。但是,对于我来说,您尝试让您通过运行Web服务器为应用程序提供RPi引导。这听起来像是我的产品,应该使用更高性能的服务器......当然,瘦可能已足够供个人使用。 – theldoria

回答

0

尝试从该行移除S:

# Default-Stop:  S 0 1 6 
0

有一种叫做crontab的东西。也许它可以帮助你,当你的树莓开始时开始它。