LINUX.ORG.RU
ФорумAdmin

Автозапуск скрипта в screen

 , ,


0

1

День добрый

Стоит задача - при запуске системы запускать скрипт /home/usr/run.sh, и, при необходимости, иметь доступ к его выводу.

Запускаю скрипт при старте ОС:

cat /lib/systemd/system/script.service

[Unit]

Description=run

After=multi-user.target

[Service]

Type=idle

ExecStart=/usr/sbin/script.sh

[Install]

WantedBy=multi-user.target

cat /usr/sbin/script.sh

#!/bin/sh

/home/usr/run.sh

скрипт запускается, доступа к выводу нет.

решил попробовать через screen его запустить:

screen -S  run /home/usr/run.sh   
- работает

добавляю screen в script.sh

/usr/bin/screen -A -d -m -S  run /home/usr/run.sh  

- не работает

Подскажите, что я делаю не так ?



Последнее исправление: Wolf_46 (всего исправлений: 3)

с твоего позволения присоединюсь к вопросу. У меня похоже. Сервак опрашивает метеостанцию, которая в локалке, по телнету, ставит метку времени и грепает все обозначенные строки и пишет их в файл. Работает это только при запуске руками. Если из init.d, то файл пуст, вернее тока метка времени, вывод пуст.

???

burato ★★★★★
()

Подскажите, что я делаю не так ?

Всё. Первым делом попробуй выводить данные в файл операторами > или >>.

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

Всё. Первым делом попробуй выводить данные в файл операторами > или >>.

/home/usr/run.sh запускает приложение с параметрами. Приложение остается работать постоянно. Нужен постоянный доступ к его выводу и, при необходимости, должно управляться хоткеями. Вывод в файл не подходит

Wolf_46
() автор топика

systemctl status script.service чего пишет?

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

Каждый раз когда у нуба возникает такого рода проблема, это означает, что он что-то делает не так.

Давай рассказывай, что делает «программа» и почему к ней нужен постоянный интерактивный доступ.

Когда такое действительно нужно (в довольно-таки редких случаях, пример — transmission-daemon + transmission-remote), пишут клиент-серверную архитектуру с демоном и клиентом, общающимися по тому или иному протоколу — никто такое не костылит на баше.

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

Всё. Первым делом попробуй выводить данные в файл операторами > или >>.

Лучше так

1>>
Ошибки отследить:
2>>

Bootmen ☆☆☆
()
Ответ на: комментарий от unanimous

может кому пригодится...

сделал так:

cat /lib/systemd/system/script.service

[Unit]

Description=run

After=multi-user.target

[Service]

Type=idle

ExecStart=/usr/sbin/script.sh

[Install]

WantedBy=multi-user.target

cat /usr/sbin/script.sh

#!/bin/sh

su - usr -c "/usr/bin/screen -d -m"

cat ~/.screenrc

startup_message off

defutf8 on

vbell on

defscrollback 1000

autodetach on

shell -$SHELL

termcapinfo xterm* ti@:te@

shelltitle '$ |sh'

hardstatus alwayslastline "%{+b wk} %c $LOGNAME@%H %=[ %w ] "

#запускаем наш скрипт

screen -t run 0 /home/usr/run.sh                                                                                                                                              

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