Решение для Ubuntu 15.10 (думаю в 15.04 и выше работает тоже):Так как Ubuntu имеет смешанную систему инициализации. В Ubuntu 14.10 и ниже - sysv и upstart, в Ubuntu 15.04 - upstart и systemd. тык
Не забываем менять user на свой
Создадим новый файл, я назвал его finish-yandex, с таким содержанием:
[Unit]
Description=Save Yandex config
After=systemd-user-sessions.service
[Service]
ExecStop=/bin/bash '/home/user/.yandex_ram/finish-yandex.sh'
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target reboot.target poweroff.target
Немного о файле
Unit - общая информация.
Description - описание сервиса.
After - задаёт порядок загрузки. В моём случае после старта сессии пользователя.
Service - содержит информацию о службе
ExecStop - Выполняет команду при остановке сервиса.
Type - Типы службы. oneshot полезен для скриптов, которые выполняют одно задание и завершаются
Install - когда юнит должен быть активирован
finish-yandex.sh для теста содержит:
#!/bin/sh
echo "it works test" >> /home/user/.yandex_ram/test.log
Делаем файл finish-yandex исполняемым:
sudo chmod +x /home/user/.yandex_ram/finish-yandex
Копируем файл в /etc/systemd/system с расширением *.service:
sudo cp /home/user/.yandex_ram/finish-yandex /etc/systemd/system/finish-yandex.service
Перезагружаем systemd для поиска новых или измененных юнитов:
sudo systemctl daemon-reload
Включаем юнит в автозапуск при загрузке системы:
sudo systemctl enable finish-yandex.service
Перезагружаемся и проверяем. У меня все заработало, файл test.log появился после перезагрузки.
Что бы проверить для начало без перезагрузки, можно запустить и остановить юнит:
sudo systemctl start finish-yandex.service
sudo systemctl stop finish-yandex.service
Для отключения юнита из автозапуск при загрузке системы:
sudo systemctl disable finish-yandex.service
Полезная ссылка о systemd -
тык.