@rtem |
|
Темы:
32
Сообщения:
127
Участник с: 04 января 2009
|
Всем привет, такая проблема установил couchdb, после установки стартует все нормально, записал в rc.conf запуск при загрузке системы, но при загрузке вылетает ошибка Apache CouchDB needs write permission on the PID file: /var/run/couchdb/couchdb.pid 0 drwxr-xr-x 2 root root 40 дек. 23 21:12 couchdb chown -R couchdb:root /var/run/couchdb стартует без проблем, но после перезагрузки все опять повторяется. Никто не сталкивался с подобной проблемой? |
cucullus |
|
Темы:
257
Сообщения:
3438
Участник с: 06 июня 2007
|
надо думать, что это не проблема, а просто /var/run/couchdb/ создаётся при запуске демона. а сам /var/run вроде как живёт только до перезагрузки. посмотрите /etc/rc.d/couchdb (или как там он зовётся)
такие дела.
|
@rtem |
|
Темы:
32
Сообщения:
127
Участник с: 04 января 2009
|
cucullus Спасибо за ответ. В общем вот он /etc/rc.d/couchdb #!/bin/bash . /etc/rc.conf . /etc/rc.d/functions # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy of # the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations under # the License. ### BEGIN INIT INFO # Provides: couchdb # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Apache CouchDB init script # Description: Apache CouchDB init script for the database server. ### END INIT INFO SCRIPT_OK=0 SCRIPT_ERROR=1 DESCRIPTION="database server" NAME=couchdb SCRIPT_NAME=`basename $0` COUCHDB=/usr/bin/couchdb CONFIGURATION_FILE=/etc/conf.d/couchdb RUN_DIR=/var/run/couchdb LSB_LIBRARY=/lib/lsb/init-functions if test ! -x $COUCHDB; then exit $SCRIPT_ERROR fi if test -r $CONFIGURATION_FILE; then . $CONFIGURATION_FILE fi log_daemon_msg () { stat_busy [email protected] } log_end_msg () { if test "$1" != "0"; then stat_fail else stat_done fi return $1 } if test -r $LSB_LIBRARY; then . $LSB_LIBRARY fi run_command () { command="$1" if test -n "$COUCHDB_OPTIONS"; then command="$command $COUCHDB_OPTIONS" fi if test -n "$COUCHDB_USER"; then if su $COUCHDB_USER -s /bin/bash -c "$command"; then return $SCRIPT_OK else return $SCRIPT_ERROR fi else if $command; then return $SCRIPT_OK else return $SCRIPT_ERROR fi fi } start_couchdb () { # Start Apache CouchDB as a background process. mkdir -p "$RUN_DIR" command="$COUCHDB -b" if test -n "$COUCHDB_STDOUT_FILE"; then command="$command -o $COUCHDB_STDOUT_FILE" fi if test -n "$COUCHDB_STDERR_FILE"; then command="$command -e $COUCHDB_STDERR_FILE" fi if test -n "$COUCHDB_RESPAWN_TIMEOUT"; then command="$command -r $COUCHDB_RESPAWN_TIMEOUT" fi run_command "$command" > /dev/null } stop_couchdb () { # Stop the running Apache CouchDB process. run_command "$COUCHDB -d" > /dev/null } display_status () { # Display the status of the running Apache CouchDB process. run_command "$COUCHDB -s" } parse_script_option_list () { # Parse arguments passed to the script and take appropriate action. case "$1" in start) log_daemon_msg "Starting $DESCRIPTION" $NAME if start_couchdb; then log_end_msg $SCRIPT_OK else log_end_msg $SCRIPT_ERROR fi ;; stop) log_daemon_msg "Stopping $DESCRIPTION" $NAME if stop_couchdb; then log_end_msg $SCRIPT_OK else log_end_msg $SCRIPT_ERROR fi ;; restart) log_daemon_msg "Restarting $DESCRIPTION" $NAME if stop_couchdb; then if start_couchdb; then log_end_msg $SCRIPT_OK else log_end_msg $SCRIPT_ERROR fi else log_end_msg $SCRIPT_ERROR fi ;; status) display_status ;; *) cat << EOF >&2 Usage: $SCRIPT_NAME {start|stop|restart|status} EOF exit $SCRIPT_ERROR ;; esac } parse_script_option_list [email protected] не придумал ничего толкового кроме как изменить start_couchdb () { # Start Apache CouchDB as a background process. #mkdir -p "$RUN_DIR" <---- изменил это mkdir -p "$RUN_DIR" -m 0777 <----- на это command="$COUCHDB -b" |
kurych |
|
Темы:
0
Сообщения:
1394
Участник с: 06 ноября 2011
|
1. Попробуйте создать каталог перед запуском демонаmkdir /var/run/couchdb chown couchdb /var/run/couchdb 2. Попробуйте добавить создание каталога в файл /etc/conf.d/couchdb, дописав в конец mkdir "$RUN_DIR" chown couchdb "$RUN_DIR" 3. Можно пожаловаться мейнтейнерам пакета, что бы они подправили скрипт запуска. |
kurych |
|
Темы:
0
Сообщения:
1394
Участник с: 06 ноября 2011
|
На самом деле, в скрипте запуска есть странность:run_command () { command="$1" if test -n "$COUCHDB_OPTIONS"; then command="$command $COUCHDB_OPTIONS" fi if test -n "$COUCHDB_USER"; then if su $COUCHDB_USER -s /bin/bash -c "$command"; then return $SCRIPT_OK else return $SCRIPT_ERROR fi ... |
@rtem |
|
Темы:
32
Сообщения:
127
Участник с: 04 января 2009
|
kurych Пробовал этот вариант изначально, но каталог каждый раз создается при загрузке системы и владелец у него root |
@rtem |
|
Темы:
32
Сообщения:
127
Участник с: 04 января 2009
|
kurychА куда жаловаться то? |
kurych |
|
Темы:
0
Сообщения:
1394
Участник с: 06 ноября 2011
|
@rtemИдти на страницу пакета. Там справа можно сначала посмотреть, не создано ли аналогичного багрепорта, выбрав ссылку “Bug Reports”, а потом “Add New Bug” для описания новой проблемы.kurychА куда жаловаться то? |
@rtem |
|
Темы:
32
Сообщения:
127
Участник с: 04 января 2009
|
Обновился, все проблему исправили. посмотрел /etc/rc.d/couchdb исправили баг83 start_couchdb () { 84 # Start Apache CouchDB as a background process. 85 86 mkdir -p "$RUN_DIR" 87 chown -R $COUCHDB_USER "$RUN_DIR" |