Автор Тема: Запуск программ при старте ОС  (Прочитано 6189 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Zlobny_prapor

  • Новичок форума
  • Сообщений: 8
Доброго времени суток всем форумчанам! Посетила меня следующая проблема. Мне необходимо запускать приложение с графической оболочкой при старте ОС. Весь день гуглил, получил следующее. В папке /etc/init.d создал скрипт test.sh который должен запускать файл test.run. Код скрипта:
Off-Topic: ShowHide
[offtopic]
#! /bin/sh
### BEGIN INIT INFO
# Provides:          test.run
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO


#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.

# Do NOT "set -e"


PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Install Qt creator"
NAME=test.run
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS="start"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/test.sh

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions



do_start()
{
   # Return
   #   0 if daemon has been started
   #   1 if daemon was already running
   #   2 if daemon could not be started #--quiet --pidfile --exec --test > /dev/null \
   start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON  --test > /dev/null \
      || return 1
   start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
      $DAEMON_ARGS \
      || return 2
   # Add code here, if necessary, that waits for the process to be ready
   # to handle requests from services started subsequently which depend
   # on this one.  As a last resort, sleep for some time.
}


#
# Function that stops the daemon/service
#
do_stop()
{
   # Return
   #   0 if daemon has been stopped
   #   1 if daemon was already stopped
   #   2 if daemon could not be stopped
   #   other if a failure occurred
   start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
   RETVAL="$?"
   [ "$RETVAL" = 2 ] && return 2
   # Wait for children to finish too if this is a daemon that forks
   # and if the daemon is only ever run from this initscript.
   # If the above conditions are not satisfied then add some other code
   # that waits for the process to drop all resources that could be
   # needed by services started subsequently.  A last resort is to
   # sleep for some time.
   start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
   [ "$?" = 2 ] && return 2
   # Many daemons don't delete their pidfiles when they exit.
   rm -f $PIDFILE
   return "$RETVAL"
}






#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
   #
   # If the daemon can reload its configuration without
   # restarting (for example, when it is sent a SIGHUP),
   # then implement that here.
   #
   start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
   return 0
}

case "$1" in
  start)
   [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
   do_start
   case "$?" in
      0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
      2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
   esac
   ;;
  stop)
   [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
   do_stop
   case "$?" in
      0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
      2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
   esac
   ;;
  status)
   status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
   ;;
  #reload|force-reload)
   #
   # If do_reload() is not implemented then leave this commented out
   # and leave 'force-reload' as an alias for 'restart'.
   #
   #log_daemon_msg "Reloading $DESC" "$NAME"
   #do_reload
   #log_end_msg $?
   #;;
  restart|force-reload)
   #
   # If the "reload" option is implemented then remove the
   # 'force-reload' alias
   #
   log_daemon_msg "Restarting $DESC" "$NAME"
   do_stop
   case "$?" in
     0|1)
      do_start
      case "$?" in
         0) log_end_msg 0 ;;
         1) log_end_msg 1 ;; # Old process is still running
         *) log_end_msg 1 ;; # Failed to start
      esac
      ;;
     *)
      # Failed to stop
      log_end_msg 1
      ;;
   esac
   ;;
  *)
   #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
   echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
   exit 3
   ;;
esac

:



[/offtopic]


. Ссылки в папках /etc/rc(0-6).d командой insserv test.sh  создал, наличие проверил. Если запускать данный скрнипт после старта ОС из консоли ./test.sh start то он отрабатывает корректно.Сразу говорю что графические утилиты типа rcconf не подходят.  Что посоветуете?
 

Оффлайн Modigar

Re: Запуск программ при старте ОС
« Ответ #1 : 18 Июня 2018, 18:06:43 »
Не отрабатывает видимо потому что иксы не запущены ещё.
Может эти действия стоит переложить на ДЕ?
 

Оффлайн vovan--vovan

Re: Запуск программ при старте ОС
« Ответ #2 : 18 Июня 2018, 18:07:05 »
У нас штатный экстрасенс в отпуске, а мы не можем дистанционно даже прочитать название вашей ОС. Но судя по техническим терминам, то сдается мне у вас серверная ОС. Если я ошибаюсь, то пропишите название проги в автозапуск.
Не даст поколебаться Он ноге твоей, и не воздремлет хранящий тебя...
 

Оффлайн ecc83

Re: Запуск программ при старте ОС
« Ответ #3 : 18 Июня 2018, 18:12:19 »
Мне необходимо запускать приложение с графической оболочкой при старте ОС.

Ерундой занимаетесь. Какая OC и какая оболочка?
 

Оффлайн ferum

Re: Запуск программ при старте ОС
« Ответ #4 : 18 Июня 2018, 18:24:21 »
В любом случае, при старте системы стартуют сервисы, со стартом графической оболочки уже можно запустить приложение. Принцип общий поместить файл.desktop в окружение/.autostart но пути для каждого окружения свои.
Русские дебианщики против цифрового слабоумия !
 

Оффлайн ogost

Re: Запуск программ при старте ОС
« Ответ #5 : 18 Июня 2018, 20:12:06 »
Запихивание гуишной проги в init.d - плохая идея, ибо гуишные проги обычно запускаются после того, как пользователь залогинился. А init, systemd и прочее - для демонов. Так что лучше воспользоваться автозапуском конкретного ДЕ, которым вы пользуетесь.

Оффлайн ChubaDuba

Re: Запуск программ при старте ОС
« Ответ #6 : 18 Июня 2018, 20:20:47 »
Как вариант можно запускать приложения с использованием systemd timer
Бλог   @chuba_duba
 

Оффлайн Zlobny_prapor

  • Новичок форума
  • Сообщений: 8
Re: Запуск программ при старте ОС
« Ответ #7 : 19 Июня 2018, 09:20:36 »
Приложение GUI написано в Qt. Операционная система Debian 6.0
 

Оффлайн ogost

Re: Запуск программ при старте ОС
« Ответ #8 : 19 Июня 2018, 10:38:15 »
Не совсем понятна постановка задачи.
Если нужно запускать пользовательское ГУИшное приложение после входа в систему - то это делается элементарно в настройках ДЕ, которым вы пользуетесь. Кстати, так какой там у вас ДЕ?
Если нужно запускать пользовательское ГУИшное приложение ДО входа в систему - то тут нужны костыли и танцы с бубнами. Как рабочий костыль, можно сделать автологин пользователя и запуск приложения автозагрузкой ДЕ. Но не всем подходит этот вариант. Поэтому-то мы с коллегами и пытаемся вытянуть у вас полную постановку задачи.

Оффлайн vovan--vovan

Re: Запуск программ при старте ОС
« Ответ #9 : 19 Июня 2018, 13:50:48 »
Попробую побыть бабой-Вангой, у автора темы ОСь есть а оболочки нет, и есть попытка запустить совместно с ОСь-ю без иксов приложение с графической оболочкой. Если мелю чушь, то админ может удалить мой пост.
Не даст поколебаться Он ноге твоей, и не воздремлет хранящий тебя...
 

Оффлайн Zlobny_prapor

  • Новичок форума
  • Сообщений: 8
Re: Запуск программ при старте ОС
« Ответ #10 : 19 Июня 2018, 13:56:49 »
Приложение надо запускать до ввода логина и пароля.

Cообщение объединено 19 Июня 2018, 14:00:14
Попробую побыть бабой-Вангой, у автора темы ОСь есть а оболочки нет, и есть попытка запустить совместно с ОСь-ю без иксов приложение с графической оболочкой. Если мелю чушь, то админ может удалить мой пост.
Да, Вы правы.
« Последнее редактирование: 19 Июня 2018, 14:00:14 от Zlobny_prapor »
 

Оффлайн ecc83

Re: Запуск программ при старте ОС
« Ответ #11 : 19 Июня 2018, 14:30:47 »
Zlobny_prapor, другими словами Вы хотите запустить графическое приложение в системе, которая не имеет графической поддержки?
 

Оффлайн Zlobny_prapor

  • Новичок форума
  • Сообщений: 8
Re: Запуск программ при старте ОС
« Ответ #12 : 19 Июня 2018, 16:30:23 »
Графическая поддержка в системе имеется.  Приложение должно запускаться ДО запроса логина и пароля пользователя
 

Оффлайн ecc83

Re: Запуск программ при старте ОС
« Ответ #13 : 19 Июня 2018, 17:52:58 »
Графическая поддержка в системе имеется.

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

Оффлайн Zlobny_prapor

  • Новичок форума
  • Сообщений: 8
Re: Запуск программ при старте ОС
« Ответ #14 : 20 Июня 2018, 09:25:10 »
Gnome2 графическая оболочка.
Debian 6.0.
 

Теги:
     

    Debian 8 - запуск скрипта из Gnome

    Автор abrasum

    Ответов: 3
    Просмотров: 1865
    Последний ответ 15 Июля 2015, 17:09:29
    от alsoijw
    Запуск Transmission-daemon от имени пользователя

    Автор Vasai

    Ответов: 11
    Просмотров: 6120
    Последний ответ 19 Октября 2016, 18:51:33
    от vadd
    Запуск с флешки.

    Автор Александр090717

    Ответов: 10
    Просмотров: 3003
    Последний ответ 17 Июля 2017, 22:55:19
    от Александр090717
    Запуск .sh файла

    Автор Eyer

    Ответов: 25
    Просмотров: 1590
    Последний ответ 28 Января 2021, 11:46:30
    от dzhoser
    [Решено] Запуск скрипта через ярлык с правами суперпользователя

    Автор noname

    Ответов: 25
    Просмотров: 10868
    Последний ответ 16 Мая 2013, 20:53:41
    от noname