2016-10-18 12 views
0

Каков наилучший способ запуска filebeat как другой учетной записи пользователя или службы на Centos 6.5?Запуск filebeat как другой учетной записи пользователя или службы на Centos 6.5

В данный момент, когда я запускаю его с service filebeat start, он всегда работает как корень.

Это содержимое файла /etc/init.d/filebeat на Centos 6.5:

#!/bin/bash 
# 
# filebeat   filebeat shipper 
# 
# chkconfig: 2345 98 02 
# 

### BEGIN INIT INFO 
# Provides:   filebeat 
# Required-Start: $local_fs $network $syslog 
# Required-Stop:  $local_fs $network $syslog 
# Default-Start:  2 3 4 5 
# Default-Stop:  0 1 6 
# Short-Description: Sends log files to Logstash or directly to Elasticsearch. 
# Description:  filebeat is a shipper part of the Elastic Beats 
#     family. Please see: https://www.elastic.co/products/beats 
### END INIT INFO 



PATH=/usr/bin:/sbin:/bin:/usr/sbin 
export PATH 

[ -f /etc/sysconfig/filebeat ] && . /etc/sysconfig/filebeat 
pidfile=${PIDFILE-/var/run/filebeat.pid} 
agent=${PB_AGENT-/usr/bin/filebeat} 
args="-c /etc/filebeat/filebeat.yml" 
test_args="-e -configtest" 
wrapper="filebeat-god" 
wrapperopts="-r/-n -p $pidfile" 
RETVAL=0 

# Source function library. 
. /etc/rc.d/init.d/functions 

# Determine if we can use the -p option to daemon, killproc, and status. 
# RHEL < 5 can't. 
if status | grep -q -- '-p' 2>/dev/null; then 
    daemonopts="--pidfile $pidfile" 
    pidopts="-p $pidfile" 
fi 

test() { 
    $agent $args $test_args 
} 

start() { 
    echo -n $"Starting filebeat: " 
    test 
    if [ $? -ne 0 ]; then 
     echo 
     exit 1 
    fi 
    daemon $daemonopts $wrapper $wrapperopts -- $agent $args 
    RETVAL=$? 
    echo 
    return $RETVAL 
} 

stop() { 
    echo -n $"Stopping filebeat: " 
    killproc $pidopts $wrapper 
    RETVAL=$? 
    echo 
    [ $RETVAL = 0 ] && rm -f ${pidfile} 
} 

restart() { 
    test 
    if [ $? -ne 0 ]; then 
     return 1 
    fi 
    stop 
    start 
} 

rh_status() { 
    status $pidopts $wrapper 
    RETVAL=$? 
    return $RETVAL 
} 

rh_status_q() { 
    rh_status >/dev/null 2>&1 
} 

case "$1" in 
    start) 
     start 
    ;; 
    stop) 
     stop 
    ;; 
    restart) 
     restart 
    ;; 
    condrestart|try-restart) 
     rh_status_q || exit 0 
     restart 
    ;; 
    status) 
     rh_status 
    ;; 
    *) 
     echo $"Usage: $0 {start|stop|status|restart|condrestart}" 
     exit 1 
esac 

exit $RETVAL 

Благодаря

ответ

0

вы пробовали изменения:

daemonopts="--pidfile $pidfile" 

To:

daemonopts="--pidfile $pidfile --user <REPLACE_YOUR_UID_HERE>" 

Вы можете als o использовать переменную вместо <REPLACE_YOUR_UID_HERE>