LINUX.ORG.RU

Закрыть окно терминала после удачного выполнения скрипта.

 ,


0

1

Пытаюсь адаптировать скрипт для запуска nmap под xfce от root. Требуется, чтобы по завершению авторизации, окно терминала само закрывалось, не закрывая работающую программу. Сейчас это выглядит так:

#!/bin/sh
#this code is bassed off of the debian su-to-root command
#Joost Witteveen <joostje@debian.org>
#Morten Brix Pedersen
#Bill Allombert <ballombe@debian.org>

PRIV=root
COMMAND="zenmap"

quote () { printf %s\\n "$1" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/'/" ; }

for i in "$@"; do
  COMMAND="$COMMAND $(quote "$i")"
done

euid=$(id -u)
privid=$(id -u $PRIV)
if test "$euid" = "$privid"; then
    $COMMAND
else
    if test -z "$SU_TO_ROOT_X"; then
      if which gksu >/dev/null 2>&1 ; then
        SU_TO_ROOT_X=gksu
        if test "X$KDE_FULL_SESSION" = "Xtrue" ; then
          if which kdesu >/dev/null 2>&1 ; then
            SU_TO_ROOT_X=kdesu
          elif test -x /usr/lib/kde4/libexec/kdesu ; then
            SU_TO_ROOT_X=kde4su
          fi;
        fi;
      elif which kdesu >/dev/null 2>&1 ; then 
        SU_TO_ROOT_X=kdesu
      elif test -x /usr/lib/kde4/libexec/kdesu ; then
        SU_TO_ROOT_X=kde4su
      elif which ktsuss >/dev/null 2>&1 ; then
        SU_TO_ROOT_X=ktsuss
      elif which xfce4-terminal>/dev/null 2>&1 ;then
        if which sudo>/dev/null 2>&1 ;then
          SU_TO_ROOT_X=sdterm
        else
          SU_TO_ROOT_X=sterm
        fi;
      else
        SU_TO_ROOT_X=su-to-root
      fi
    fi
    case $SU_TO_ROOT_X in
      gksu) gksu -u "$PRIV" "$COMMAND";;
      kdesu) kdesu -u "$PRIV" -c "$COMMAND";;
      kde4su) /usr/lib/kde4/libexec/kdesu -u "$PRIV" -c "$COMMAND";;
      ktsuss) ktsuss -u "$PRIV" "$COMMAND";;
  # As a last resort, open a new xterm use sudo/su
      sdterm) xfce4-terminal -e "sudo -u $PRIV $COMMAND";;
      sterm) xfce4-terminal -e "su -l $PRIV -c $COMMAND";;
    esac;
fi
Deleted

Ответ на: комментарий от alozovskoy

А откуда взять данные для переменной? Я в баше вообще не силён, максимум что-то подправить могу на интуитивном уровне.

Deleted
()
Ответ на: комментарий от anonymous

«nohup $COMMAND >/dev/null;exit»? вообще какой-то колхоз

anonymous
()

дружище, ну какого еще «удачного»? Ты что, кости бросаешь? УСПЕШНОГО.

targitaj ★★★★★
()
Ответ на: комментарий от anonymous

nohup: ввод игнорируется, вывод добавляется в 'nohup.out' Далее выдаёт, что нет такого, как «>/dev/null»

Deleted
()
Ответ на: комментарий от mos

Я не собираюсь вступать с тобой в полемику, болезненный

Разве что скажу, что не все тут программисты и админы, есть чуваки, вроде меня, которые просто используют компьютер. И знаешь, у меня на самом деле есть тяга к познаниям, но не на столько, чтобы учить баш ради единичного случая.

Мне что, C учить, чтобы исходники подправить, как это было с glib? А умники, вроде тебя, портят атмосферу. По делу ничего не сказал и конструктивного тоже. Тянет на хер таких слать, да правила ресурса не позволяют.

Deleted
()

$$ - переменная баша, которая хранит свой PID. <program_name> & kill -s SIGKILL $$. Так <program_name> останется работать, а терминал ты убъешь

pcz
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.