Ubuntu bash echo "$PASSWORD". | sudo -S WID=$(cat /var/lib/FILE)

Наконец я нашел ответ, как обычно, это было что-то очень простое и логичное.

Скрипт INIT - это скрипт, который находится в /etc/init.d/ для инициализации запуска и выключения. Не все скрипты init одинаковы!

Поэтому я собираюсь поделиться тем, как я заставил службу RED5 работать в целом.

Это для CentOs 6.4 32bit на linux VPS, и на самом деле я закончил переустановкой системы, пытаясь понять свою ошибку, но в моей системе все было в порядке.

Итак, сначала java rpm, чтобы вам не нужен был apache ant. Спасибо @slm

$ wget --no-check-certificate \

--no-cookies                                           \

--header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" \
"http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586.rpm"

Затем rpm -ivh jdk-7u51-linux-i586.rpm

Теперь установите последнюю версию RED5, которая в настоящее время является RC2 (релиз-кандидат 2 выше RC1)

 cd /usr/local/

 wget http://red5.org/downloads/red5/1_0/red5-1.0.0-RC2.tar.gz

 tar -xzvf red5-1.0.0.tar.gz

 rm red5-1.0.0.tar.gz

 mv red5-1.0.0 red5

Теперь важный скрипт INIT.

vi /etc/init.d/red5

#!/bin/sh
 # Для RedHat и кузенов:
 # chkconfig: 2345 85 85
 # description: Red5 flash streaming server
 # processname: red5
  PROG=red5
  RED5_HOME=/usr/local/red5
  DAEMON=$RED5_HOME/$PROG.sh
  PIDFILE=/var/run/$PROG.pid

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

  [ -r /etc/sysconfig/red5 ] && . /etc/sysconfig/red5

  RETVAL=0

  case "$1" in
  start)
  echo -n $"Starting $PROG: "
  cd $RED5_HOME
  $DAEMON >/dev/null 2>/dev/null &
  RETVAL=$?
  if [ $RETVAL -eq 0 ]; then
  echo $! > $PIDFILE
  touch /var/lock/subsys/$PROG

  fi
  [ $RETVAL -eq 0 ] && success $"$PROG startup" || failure $"$PROG startup"
  echo
  ;;
  stop)
  echo -n $"Shutting down $PROG: "
  killproc -p $PIDFILE
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$PROG
  ;;
  restart)
  $0 stop
  $0 start
  ;;
  status)
  status $PROG -p $PIDFILE
  RETVAL=$?
  ;;
  *)
  echo $"Usage: $0 {start|stop|restart|status}"
  RETVAL=1
  esac

  exit $RETVAL

Активируйте скрипт init:

chmod 755 /etc/init.d/red5
 chkconfig red5 --add
 chkconfig red5 on

Обновите настройки, которые находятся по адресу:

/usr/local/red5/conf/* (на самом деле не уверен в этой части!)

Запустите его:

/etc/init.d/red5 start

Я уверен, что любое количество скриптов init работает, но иногда вам нужно указать каталог файлов JDK в скрипте, и я просто нахожу вышеприведенный скрипт более простым. Но если вы хотите знать, они находятся в /usr/lib/jvm

0
19.08.2018, 16:08
1 ответ

Если вам нужно содержимое файла в переменной в вашей текущей оболочке, описанное выше не будет работать, так как присваивание выполняется в подоболочке и будет потеряно после выхода из подоболочки (по общему признанию, есть оболочки, которые не теряют переменную ).

Для работы sudoнеобходимо иметь запись в sudoers, позволяющую выполнить команду. Присвоение переменной не является командой, поэтому выше снова произойдет сбой.

Если вы хотите, чтобы содержимое файла было в переменной без разрешения на чтение этого файла,попробуй

WID=$(echo "a" | sudo -S cat /var/lib/FILE)
1
28.01.2020, 02:42

Теги

Похожие вопросы