【问题标题】:Starting thin server on Raspberry PI on startup启动时在 Raspberry PI 上启动瘦服务器
【发布时间】: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-raspberrypibrianmilco.blogspot.de/2013/02/… 作为入门...
  • 你为什么会选择这个选项。我喜欢 Thin,因为它在开发时与 Rails 集成得很好。只需将 gem 添加到 Gemfile 并正常启动服务器:rails s
  • 毫无疑问,这对开发很有好处。但是,在我看来,您尝试让 RPi 启动并运行 Web 服务器,为应用程序提供服务。这对我来说听起来像是生产,应该使用性能更高的服务器......当然,对于个人使用来说,瘦可能就足够了。
  • @theldoria 我认为你是对的,瘦在这里可能并不理想。但是,我在家里使用 RasPi,所以“生产”在这里也有点相对。稍后我可能会尝试使用乘客,但现在我想设法以瘦的方式运行它。
  • 你已经手动成功运行服务端了吗?

标签: ruby-on-rails ruby linux debian raspberry-pi


【解决方案1】:

尝试从该行中删除 S:

# Default-Stop:      S 0 1 6

【讨论】:

    【解决方案2】:

    有一种叫做 crontab 的东西。也许它可以帮助你,在你的树莓启动时启动它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-10
      • 2015-08-11
      • 2017-04-11
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多