LinuxForum.Fans
Тема

автозапуск в консоли

Автор: deleted_user 12 сообщений 2026 просмотров
#327587

Есть вопрос к опытным админам.
Каким образом сделать так, чтобы при входе в консоль после ввода пароля пользователя и нажатия клавиши enter автоматически запускался какой либо скрипт?

#327588
"cdrw⇓" написал:
автоматически запускался какой либо скрипт?

не понял вопроса, какой скрипт автоматически запускался? любой скрипт настраивается через сron по нужному расписанию.

#327591
"cdrw⇓" написал:
Каким образом сделать так, чтобы при входе в консоль после ввода пароля пользователя и нажатия клавиши enter автоматически запускался какой либо скрипт?

добавь его в bashrc...

#327596
"Fat-Zer" написал:
добавь его в ~/.bashrc...

Или в ~/.bash_profile :)

#327680

Не то.
Попробую пояснить зачем.
Скрипт должен запуститься один раз и сам себя уничтожить.
Скрипт такой:

text
#!/bin/bash

/usr/bin/xdg-user-dirs-update

То есть, он должен создать каталоги и исчезнуть.

#327708

Добавить в ~/.bashrc

text

if [ -f ~/scriptname.sh ]; then
    ~/scriptname.sh
    rm ~/scriptname.sh
fi
#327709

Лучше даже так:

text

SCRIPT="/path/to/script.sh"
if [ -f $SCRIPT ]; then
    $SCRIPT
    rm $SCRIPT
fi
#327718

Спасибо большое!
То что надо.

#327719
bobr написал:
Лучше даже так:
text

SCRIPT="/path/to/script.sh"
if [ -f $SCRIPT ]; then
    $SCRIPT
    rm $SCRIPT
fi

Это не есть правильно. То есть не соответствует поставленной задаче. А именно - это при наличии некоего скрипта запустит его, а затем - уничтожит. Поставленная задача несколько иначе звучит - запуститься, что-то сделать и затем самоуничтожиться.

Я бы просто в последней строке такого скрипта дописал:

text
rm -f $0
#327732
"Cruiser78⇓" написал:
Я бы просто в последней строке такого скрипта дописал:

А потом каждый раз при запуске bash и выполнении ~/.bashrc получать сообщене о том, что такой-то файл не найден...
Строка-то с запуском скрипта в ~/.bashrc останется независимо от того, удалить этот скрипт или не удалить. Тогда уж в конец этого скрипта нужно добавить еще и sed, который будет редактировать ~/.bashrc на предмет удаления строки с вызовом этого скрипта.

#327742

Вместо
if [ -f $SCRIPT ]; then

лучше
if [ -x $SCRIPT ]; then

либо внутри if вызывать как "source $SCRIPT" ...

#327807

Может я не правильно пояснил, но bobr, правильно меня понял и соответственно дал наиболее правильную подсказку.

Файл ~/.bashrc, вместе со скриптом scriptname.sh я разместил в каталоге /etc/skel. При создании пользователя, они автоматом разместились в его домашнем каталоге. При первом входе пользователя команда /usr/bin/xdg-user-dirs-update создала каталоги и "исчезла". Я этого и хотел добиться. На счет техники исполнения, тут из меня программатор еще никудышний, я согласен на любой работающий вариант. Хотя почитать, как делают умные люди всегда интересно...
Это мне нужно было для первого запуска LXDE, в отличии от XFCE там эти каталоги автоматом не создаются. А как это устроено при первом пуске XFCE, разобраться не смог.

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