Tôi có một kịch bản init để khởi động một daemon. Vấn đề là nó chạy như root. Tôi muốn nó chạy như một người dùng gọi là "triển khai". Ubuntu 12.04
#! /bin/sh
# File: /etc/init.d/unicorn
### BEGIN INIT INFO
# Provides: unicorn
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the unicorn web server
# Description: starts unicorn
### END INIT INFO
DAEMON=/usr/local/bin/unicorn_rails
DAEMON_OPTS="-c /var/www/current/config/unicorn.rb -D"
NAME=unicorn
DESC="Unicorn"
PID=/var/www/current/shared/pid/unicorn.pid
case "$1" in
start)
echo -n "Starting $DESC: "
$DAEMON $DAEMON_OPTS
echo "$NAME."
;;
*)
echo "Usage: $NAME {start|stop|restart|reload}" >&2
exit 1
;;
esac
exit 0
Chú ý không khởi chạy deamon bằng lệnh "dịch vụ" trong khi bạn đang kiểm tra vì tùy chọn chuid sẽ không có hiệu lực và quá trình sẽ chạy như root.
—
pasqal
Có phải tất cả các tập lệnh trong init.d được gọi sau kernel đã biết người dùng trong hệ thống?
—
chuộc
$DAEMON $DAEMON_OPTS
thànhsu - deploy -c "$DAEMON $DAEMON_OPTS"