Update init.d scripts to handle stderr; readd splash screen for remote consoles
authorMatthew Jordan <mjordan@digium.com>
Mon, 21 Jan 2013 20:41:12 +0000 (20:41 +0000)
committerMatthew Jordan <mjordan@digium.com>
Mon, 21 Jan 2013 20:41:12 +0000 (20:41 +0000)
When r376428 was commited to re-order start up sequences to be more tolerant of
forking with thread primitives, a few items were changed that caused changes
in behavior on some distros. This includes:
 * Not displaying the splash screen on a remote console.
 * Displaying an error message on stderr when a remote console cannot connect
   to a running instance of Asterisk.

In the first case, the splash screen was re-added (thanks to Michael L. Young).
In the second case, the various init.d scripts were modified to pipe stderr
to /dev/null, as the error message is useful - if you execute a remote
console or a remote console command execution and it fail, it should tell
you. Note that the error message was always present, it just failed to be
printed prior to r376428.

Much thanks to the folks who quickly reported this problem, provided solutions,
and promptly tested the various init.d scripts on a variety of distros.

(closes issue ASTERISK-20945)
Reported by: Warren Selby
Tested by: Michael L. Young, Jamuel Starkey, kaldemar, Danny Nicholas, mjordan
patches:
  asterisk-20945-remote-intro-msg.diff uploaded by elguero (license 5026)
  ASTERISK-20945-1.8-mjordan.diff uploaded by mjordan (license 6283)
........

Merged revisions 379760 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 379777 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 379790 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@379791 65c4cc65-6c06-0410-ace0-fbb531ad65f3

contrib/init.d/rc.archlinux.asterisk
contrib/init.d/rc.debian.asterisk
contrib/init.d/rc.gentoo.asterisk
contrib/init.d/rc.mandriva.asterisk
contrib/init.d/rc.redhat.asterisk
contrib/init.d/rc.slackware.asterisk
contrib/init.d/rc.suse.asterisk
contrib/scripts/safe_asterisk
main/asterisk.c

index ab67114..9c84085 100755 (executable)
@@ -33,7 +33,7 @@ case "$1" in
     if [ -x $DAEMON ]; then
       # Check if Asterisk is already running.  If it is, then bug out, because
       # starting safe_asterisk when Asterisk is running is very bad.
-      VERSION=`${DAEMON} -rx 'core show version'`
+      VERSION=`${DAEMON} -rx 'core show version' 2>/dev/null`
       if [ "`echo $VERSION | cut -c 1-8`" = "Asterisk" ]; then
          echo "Asterisk is already running.  $0 will exit now."
          exit 1
index f99aade..211737f 100755 (executable)
@@ -66,7 +66,7 @@ case "$1" in
   start)
        # Check if Asterisk is already running.  If it is, then bug out, because
        # starting up Asterisk when Asterisk is already running is very bad.
-       VERSION=`${DAEMON} -rx 'core show version' || ${TRUE}`
+       VERSION=`${DAEMON} -rx 'core show version' 2>/dev/null || ${TRUE}`
        if [ "`echo $VERSION | cut -c 1-8`" = "Asterisk" ]; then
                echo "Asterisk is already running.  $0 will exit now."
                exit 0
index ef54a0e..04d1c7a 100755 (executable)
@@ -20,7 +20,7 @@ depend() {
 start() {
        # Check if Asterisk is already running.  If it is, then bug out, because
        # starting safe_asterisk when Asterisk is running is very bad.
-       VERSION=`${ASTSBINDIR}/asterisk -rx 'core show version'`
+       VERSION=`${ASTSBINDIR}/asterisk -rx 'core show version' 2>/dev/null`
        if [ "`echo $VERSION | cut -c 1-8`" = "Asterisk" ]; then
                echo "Asterisk is already running.  $0 will exit now."
                exit 1
index 319ce3e..e095ccf 100755 (executable)
@@ -135,7 +135,7 @@ case "$1" in
        start)
                # Check if Asterisk is already running.  If it is, then bug out, because
                # starting Asterisk when Asterisk is already running is very bad.
-               VERSION=`${ASTSBINDIR}/asterisk -rx 'core show version'`
+               VERSION=`${ASTSBINDIR}/asterisk -rx 'core show version' 2>/dev/null`
                if [ "`echo $VERSION | cut -c 1-8`" = "Asterisk" ]; then
                        echo "Asterisk is already running.  $0 will exit now."
                        exit 1
index 01ab862..45ea9bc 100755 (executable)
@@ -71,7 +71,7 @@ RETVAL=0
 start() {
        # Check if Asterisk is already running.  If it is, then bug out, because
        # starting safe_asterisk when Asterisk is running is very bad.
-       VERSION=`${AST_SBIN}/asterisk -rx 'core show version'`
+       VERSION=`${AST_SBIN}/asterisk -rx 'core show version' 2>/dev/null`
        if [ "`echo $VERSION | cut -c 1-8`" = "Asterisk" ]; then
                echo "Asterisk is already running."
                exit 0
index bbe04b7..79c2b92 100755 (executable)
@@ -24,7 +24,7 @@ asterisk_start() {
    if [ -x /usr/sbin/asterisk ]; then
       # Check if Asterisk is already running.  If it is, then bug out, because
       # starting safe_asterisk when Asterisk is running is very bad.
-      VERSION=`/usr/sbin/asterisk -rx 'core show version'`
+      VERSION=`/usr/sbin/asterisk -rx 'core show version' 2>/dev/null`
          if [ "`echo $VERSION | cut -c 1-8`" = "Asterisk" ]; then
          echo "Asterisk is already running.  $0 will exit now."
          exit 1
index ee70eea..1653096 100755 (executable)
@@ -78,7 +78,7 @@ start() {
 
        # Check if Asterisk is already running.  If it is, then bug out, because
        # starting Asterisk when Asterisk is already running is very bad.
-       VERSION=`/usr/sbin/asterisk -rx 'core show version'`
+       VERSION=`/usr/sbin/asterisk -rx 'core show version' 2>/dev/null`
        if [ "`echo $VERSION | cut -c 1-8`" = "Asterisk" ]; then
                echo "Asterisk is already running.  $0 will exit now."
                exit 1
index c1f058a..2e661b4 100644 (file)
@@ -49,7 +49,7 @@ message() {
 
 # Check if Asterisk is already running.  If it is, then bug out, because
 # starting safe_asterisk when Asterisk is running is very bad.
-VERSION=`${ASTSBINDIR}/asterisk -nrx 'core show version'`
+VERSION=`${ASTSBINDIR}/asterisk -nrx 'core show version' 2>/dev/null`
 if test "`echo $VERSION | cut -c 1-8`" = "Asterisk" ; then
        message "Asterisk is already running.  $0 will exit now."
        exit 1
index 380a3d2..67d09ff 100644 (file)
@@ -3560,7 +3560,7 @@ static void env_init(void)
 
 static void print_intro_message(const char *runuser, const char *rungroup)
 {
-       if (ast_opt_console || option_verbose) {
+       if (ast_opt_console || option_verbose || (ast_opt_remote && !ast_opt_exec)) {
                if (ast_register_verbose(console_verboser)) {
                        fprintf(stderr, "Unable to register console verboser?\n");
                        return;