LINUX.ORG.RU
ФорумAdmin

Хитрый запуск программы из bash/sh


0

0

Требуется запустить копию интерпретатора (bash/sh) на выполнение некоей команды (допустим top) так, чтобы по завершению последней, остаться в этой свежезапущенной копии. Другими словами требуется сделать одной коммандой то, что делается такой последовательностью: # bash # top

anonymous

Непонятно.

может
#!/bin/bash
exec other.sh  # в нем  top

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

11851 ?        Ss     0:00 SCREEN
11852 pts/13   Ss     0:00  \_ -/bin/bash
11857 pts/13   S      0:00      \_ bash -c bash; top
11858 pts/13   S+     0:00          \_ bash
11839 ?        Ss     0:00 SCREEN
11840 pts/5    Ss     0:00  \_ -/bin/bash
11845 pts/5    S      0:00      \_ bash
11849 pts/5    S+     0:00          \_ top

Чувствуете разницу?

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

Туплю безбожно. Вот ваш вариант:

11872 ? Ss 0:00 SCREEN 11873 pts/13 Ss 0:00 \_ -/bin/bash 11878 pts/13 S+ 0:00 \_ bash -c top; bash 11879 pts/13 S+ 0:00 \_ top 11839 ? Ss 0:00 SCREEN 11840 pts/5 Ss 0:00 \_ -/bin/bash 11845 pts/5 S 0:00 \_ bash 11849 pts/5 S+ 0:00 \_ top

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

чтож такое-то ))))

11872 ? Ss 0:00 SCREEN
11873 pts/13 Ss 0:00 \_ -/bin/bash
11878 pts/13 S+ 0:00 \_ bash -c top; bash
11879 pts/13 S+ 0:00 \_ top
11839 ? Ss 0:00 SCREEN
11840 pts/5 Ss 0:00 \_ -/bin/bash
11845 pts/5 S 0:00 \_ bash
11849 pts/5 S+ 0:00 \_ top

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

На самом деле, основная проблема этого метода в том, что пресловутый top после окончания не остается в истории команд, а для меня это важно )

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

смысл прост: наш девелоперский сервер, большинство серверов приложений запущено в дебаг режиме с максимумом вербоза, каждый с туевой тонной параметров командной строки, каждый в своём скрине (screen). Работа с этим всем добром выглядит так: 
1) зашёл в скрин
2) посмотрел что орёт очередной сервер приложений
3) при необходимости стопанул его, вернул из истории коммандного интерпритатора строчку с параметрами, которая его запускала, отредактировал параметры, enter ля!
Вот пишу init.d скрипты, которые весь этот хлам запускают.

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

В принципе, если это bash, то есть команды history -a (дописать историю в файл) и history -n (прочитать строки из файла конфигурации). И с помощью этих команд можно наворачивать скрипты...

mky ★★★★★
()

А зачем? В чём настоящая задача?

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

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

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