LinuxForum.Fans
Тема

Автологин и автозапуск программ без иксов

Автор: alex-seed 22 сообщений 9857 просмотров
#61521

Хочу сделать сервачок 24/7 на старенькой железке, соответственно иксы не нужны.
Как сделать автологин и автозапукс программ в консоли от конкретного пользователя, а не от рута?
Пробовал в /etc/inittab менять

text
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

допустим это:

text
2:2345:respawn:/sbin/mingetty tty2

на это:

text
2:2345:respawn:/sbin/rungetty -u username tty2 -- /usr/bin/exec_prog

эффекта нет. только заместо приглошения к вводу логина теперь пустота.
Если использовать просто автологин:

text
2:2345:respawn:/sbin/mingetty tty2 --autologin username

то не знаю как дальше запустить программу...
Может я что делаю не так, или есть для таких действий другой вариант? Или может стоит использовать другую программу для автологина и автозапуска, но какую?

#61523

su для скрипта не?

#61534
alex-seed написал:

то не знаю как дальше запустить программу...
Может я что делаю не так, или есть для таких действий другой вариант? Или может стоит использовать другую программу для автологина и автозапуска, но какую?

Попробуйте создать в домашнем каталоге пользователя, от имени которого осуществляется автологин, файл .xinitrc, со строкой вида

text

exec /usr/bin/exec_prog

P.S. Не помню насколько критичен синтаксис mingetty к порядку передаваемых ей параметров, попробуйте так

text

2:2345:respawn:/sbin/mingetty --autologin username tty2

P.S. Извините, забыл, что «иксов» у вас нет.
Тогда куда-нибудь из ~/.bash_profile или ~/.bashrc

#61542
Lupo Alberto написал:
файл .xinitrc

А он тут при чем?

Попробовал заместо migetty скормить ему скрипт допустим такого вида:
mingetty tty6 --autologin seed
sleep 1
/usr/bin/top
(может тут еще приписать вначале #!bin/bash? Хотя итак выполняется...)
Оно вроде и запускается, почему-то совсем неуправляемое становится - ни на что не реагирут вообще... Или у меня ОСь кривая или руки - уж не заню :D

#61543

Я же написал, что забыл об отсутствии Х на сервере.
~/.bash_profile или ~/.bashrc тоже не отрабатывает?

#61553
Lupo Alberto написал:
Я же написал, что забыл об отсутствии Х на сервере.
~/.bash_profile или ~/.bashrc тоже не отрабатывает?

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

#61556
alex-seed написал:
но вот как быть если надо запустить в двух разных консолях две разных программы?

От одного пользователя или от разных?
Если от одного, то зачем в разных консолях? Часть программ можно запускать в фоне. Если всё же требуется интерактивный ввод от одного пользователя в разных консолях, можно посмотреть screen.
Если нужен запуск от разных пользователей, то вроде бы всё и так понятно.

#61560
Lupo Alberto написал:
Если от одного, то зачем в разных консолях?

Да, от одного. Чтоб наглядней, хотя думаю можно кое-что и в фоне пускануть...

Lupo Alberto написал:

Если всё же требуется интерактивный ввод от одного пользователя в разных консолях, можно посмотреть screen.

Я так понимаю эту штуку можно использовать без гуя на сервере? Сервер впринципе будет иметь иногда включаемый монитор, в остальном - управление через ssh и веб-интерфейс.

#61563
alex-seed написал:
Я так понимаю эту штуку можно использовать без гуя на сервере?

Только так и можно :D

#61568
Lupo Alberto написал:
[quote=alex-seed]Я так понимаю эту штуку можно использовать без гуя на сервере?

Только так и можно :D[/quote]
И на том спасибо :D
В скором времени буду пробовать. Но вопрос про автологин/запуск из inittab остается открытый.

#61610

Я только сейчас подумал и удивился, а зачем на сервере, даже на «маленьком и домашнем», автологин и куча открытых консолей? Или, в конце концов, запустил сервер, залогинился куда надо и сколько надо раз, к чему его перезапускать часто? oO
Если будете часто на сервер по ssh заходить, не забудьте, кроме screen, посмотреть и tmux.

#61612
Lupo Alberto написал:
перезапускать часто? oO

Вот Вам наверное интересно, а мне даже не смешно - электричество у нас всякие паразиты вырубать любят и притом довольно часто. Вот поэтому и автоматизм просто необходим, благо комп сам врубается при подаче питалова. :lol:

#61617

Всё равно мне до конца не понятно, зачем залогиниваться в консоль, т. е. предполагается необходимость в интерактивной работе с компьютером?
Сервер — от английского «to serve», обслуживать. Компьютер включился, загрузил сервисы — значит, работает. И даже, если вам надо запустить сервис от определённого пользователя, при условии, что сама программа таких настроек не имеет, есть sudo.
Ну да, ладно, переубеждать не буду, вам на месте виднее.

#61620

Я в числе прочего хочу свои познания в линуксе расширить, так что меня переубеждать нет смысла. wink
О, и еще - не пользуюсь я sudo.

#61636
alex-seed написал:
Я в числе прочего хочу свои познания в линуксе расширить, так что меня переубеждать нет смысла. wink

вам подсказывают стандартные решения.

По делу - засунуть автозагрузку в inittab ИМХО - плохая идея. Для этого есть rc.local

alex-seed написал:
Как сделать автологин и автозапукс программ в консоли от конкретного пользователя, а не от рута?

в rc.local
пишете sudo -u user my_script.sh

alex-seed написал:
О, и еще - не пользуюсь я sudo.

и зря. её сделали специально для вашего случая.

#61650
drBatty написал:


По делу - засунуть автозагрузку в inittab ИМХО - плохая идея. Для этого есть rc.local

[quote=alex-seed]Как сделать автологин и автозапукс программ в консоли от конкретного пользователя, а не от рута?

в rc.local
пишете sudo -u user my_script.sh

alex-seed написал:
О, и еще - не пользуюсь я sudo.

и зря. её сделали специально для вашего случая.[/quote]
А все же можно сделать с помощью не sudo, а обычного su:

text
su -l username -c exec_file

Полез ставить sudo, поставил, стал читать ман, а там была ссылка на su, вот я и полез ман по su читать - оно оказывается тоже много чего умеет нужного. smile
p.s. если прописать то, что Вы написали в rc.local, то как оно выполняется? В фоне?

#61656
alex-seed написал:

p.s. если прописать то, что Вы написали в rc.local, то как оно выполняется? В фоне?

Смотря что и смотря как настроить.
Проще бы было это всё обсуждать и, возможно, найти какое-либо иное разумное решение, если бы вы показали, что именно вы хотите запускать.
«Мы не первые — всё уже придумано до нас!» ©

#61755
alex-seed написал:
А все же можно сделать с помощью не sudo, а обычного su:

позвольте, а как вы пароль введёте?!
учтите, su проверяет ОТКУДА пароль. его ручками надо вбивать.
для sudo пароль не нужен (при запуске от рута).

(хотя для su вроде тоже. но у меня всё равно ваш вариант su не работает)

конечно su намного проще, но использовать её в скриптах неудобно и опасно.

#61969
drBatty написал:
позвольте, а как вы пароль введёте?!

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

zerg написал:
su для скрипта не?

Извиняюсь, почему то не заметил сразу...

Пока темку в сторону ненадолго отложим т.к. времени сейчас совсем свободного нет на эксперименты.

Войдите или зарегистрируйтесь, чтобы ответить.