【发布时间】:2014-04-02 09:55:53
【问题描述】:
我想在我的 Raspberry Pi 重新启动时启动 thin Web 服务器。
我在/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:
【问题讨论】:
-
你考虑过用nginx+passenger代替吗?请参阅github.com/meinside/rails-on-raspberrypi 或brianmilco.blogspot.de/2013/02/… 作为入门...
-
你为什么会选择这个选项。我喜欢 Thin,因为它在开发时与 Rails 集成得很好。只需将 gem 添加到 Gemfile 并正常启动服务器:
rails s。 -
毫无疑问,这对开发很有好处。但是,在我看来,您尝试让 RPi 启动并运行 Web 服务器,为应用程序提供服务。这对我来说听起来像是生产,应该使用性能更高的服务器......当然,对于个人使用来说,瘦可能就足够了。
-
@theldoria 我认为你是对的,瘦在这里可能并不理想。但是,我在家里使用 RasPi,所以“生产”在这里也有点相对。稍后我可能会尝试使用乘客,但现在我想设法以瘦的方式运行它。
-
你已经手动成功运行服务端了吗?
标签: ruby-on-rails ruby linux debian raspberry-pi