Автоматический запуск скрипта после загрузки системы

Здравствуйте!

Не подскажете, как можно запустить скрипт после старта системы (имеется в виду 5-й уровнь загрузки) с явным указанием пользователя, от имени которого запускается скрипт?

Операционная система: openSUSE 12.3.

Заранее спасибо,
Наталья


Пробовала дописывать строку


@reboot /etc/scripts/1

в /etc/crontab, где


> cat /etc/scripts/1
#!/bin/sh
echo "KKK" > /etc/scripts/1.txt


Папка /etc/scripts выбрана сейчас для того, чтобы наверняка избежать ситуиции, когда раздел со скриптом не примонтирован на момент попытки его запуска.

Но после перезагрузки ничего не произошло. Последовав Ubuntu Forums: Cron - @reboot jobs not working, заменила эту строку на


@reboot /usr/scripts/1 /etc/scripts/1.log 2>&1

но тоже ничего не создалось.


Попробовала создать ссылку на скрипт в /etc/init.d/rc5.d:


/etc/init.d/rc5.d # ln -s /etc/scripts/1 ZZZ1

но ни Х-ы не запускаются, ни файл 1.txt не создаётся; окончание /var/log/Xorg.0.conf файла (там стоит видеокарта AMD Radeon HD 7970):


    16.205] (II) fglrx(0): pEnt->device->identifier=0x27f4500
    16.205] (II) fglrx(0): === [xdl_xs113_atiddxPreInit] === begin
    16.205] (II) fglrx(0): FB driver is enabled
    16.205] (II) Loading sub module "vgahw"
    16.205] (II) LoadModule: "vgahw"
    16.205] (II) Loading /usr/lib64/xorg/modules/libvgahw.so
    16.205] (II) Module vgahw: vendor="X.Org Foundation"
    16.205]    compiled for 1.13.2, module version = 0.1.0
    16.205]    ABI class: X.Org Video Driver, version 13.1
    16.205] (**) fglrx(0): Depth 24, (--) framebuffer bpp 32
    16.205] (II) fglrx(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
    16.205] (==) fglrx(0): Default visual is TrueColor
    16.205] (**) fglrx(0): Option "DPMS" "true"
    16.205] (==) fglrx(0): RGB weight 888
    16.205] (II) fglrx(0): Using 8 bits per RGB
    16.205] (==) fglrx(0): Buffer Tiling is ON
    16.205] (II) Loading sub module "fglrxdrm"
    16.205] (II) LoadModule: "fglrxdrm"
    16.206] (II) Loading /usr/lib64/xorg/modules/linux/libfglrxdrm.so
    16.206] (II) Module fglrxdrm: vendor="FireGL - AMD Technologies Inc."
    16.206]    compiled for 1.4.99.906, module version = 15.10.4
    16.207] ukiDynamicMajor: found major device number 249
    16.208] ukiDynamicMajor: found major device number 249
    16.208] ukiOpenByBusid: Searching for BusID PCI:1:0:0
    16.208] ukiOpenDevice: node name is /dev/ati/card0
    16.208] ukiOpenDevice: open result is 11, (OK)
    16.208] ukiOpenByBusid: ukiOpenMinor returns 11
    16.208] ukiOpenByBusid: ukiGetBusid reports PCI:1:0:0
    16.208] (EE) fglrx(0): The graphics processor is already set to console mode, set X mode fail. Cannot start X.
    16.208] (EE) fglrx(0): PreInit failed
    16.208] (II) fglrx(0): === [xdl_xs113_atiddxPreInit] === end
    16.209] (II) UnloadModule: "fglrx"
    16.209] (II) UnloadSubModule: "fglrxdrm"
    16.209] (II) Unloading fglrxdrm
    16.210] (II) UnloadSubModule: "vgahw"
    16.210] (II) Unloading vgahw
    16.210] (II) UnloadSubModule: "fglrxdrm"
    16.210] (EE) Screen(s) found, but none have a usable configuration.
    16.210]
Fatal server error:
    16.210] no screens found
    16.210] (EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org


Ещё советуют дописать нужный скрипт в /etc/rc.local, а также попробовать что-то сделать с помощью update-rc.d, но ни того, ни другого у меня нет.

с явным указанием пользователя

Пользователь логинится > выполняется ~/.bash_profile. Значит дописать в этот файл путь до скрипта. Пойдет?

Спасибо за предложение, но это не совсем то, что нужно.

Просто у нас время от времени происходит что-то, в результате чего машина сама по себе перегружается (то ли короткие перебои с энергией, то ли ещё что-то, не имеющее отношения к текущему обсуждению), и хотелось бы, чтоб всё, что нужно, подымалось само. А оно должно запускаться от нескольких пользователей.

Вам никто не поможет, пока не будет конкретики.

natasha wrote:

> Не подскажете, как можно запустить
> скрипт после старта системы (имеется в
> виду 5-й уровнь загрузки) с явным
> указанием пользователя, от имени
> которого запускается скрипт?

Скрипт должен из ‘cron’ стартовать.
И от юзера. Что-то вы пропустили в настройках.
Никакие /init.d не нужны. Положите в ‘/etc/cron.d/’.

пользовательские кронтабы должны быть в /var/spool/cron

Lazy_Kent](https://forums.opensuse.org/member.php/565-Lazy_Kent), спасибо!

Получилось запустить пробный скрипт как из-под рута, так и из-под пользователя.

Положила скрипт 1 в /etc/cron.d, а в /etc/crontab добавила


@reboot natasha /etc/cron.d/1

и оно заработало.

Спасибо всем!