У меня есть Ubuntu 18.04
Мне установили узел биткоинов на моей Ubuntu. Обычно я запускаю его с этой команды:
/home/user1/bitcoinz/src/bitcoinzd -datadir=/home/user1/bitcoinz/data > /dev/null 2> /dev/null &
Я запускаю его как user1, не как корень. Как добавить запуск этого deamon в начале сервера? Чтобы сделать это, я могу использовать команду sudo update-rc.d xxx defaults
, но как добавить параметры и работающий как user1?
Вы могли запустить свою команду с помощью крона.
crontab -e
к команде выполнения как user1Добавьте в конец:
* * * * * /bin/date >> /home/user1/mydate
чтобы проверить, появляется ли/home/user1/mydate файл и Вы видели его содержание
~/scripts
папка: mkdir ~/scripts
Добавьте свою команду к /home/user1/scripts/bitcoinz
сценарий: vim.tiny ~/scripts/bitcoinz
(совершите нападки i для редактирования),
#!/bin/sh
/home/user1/bitcoinz/src/bitcoinzd -datadir=/home/user1/bitcoinz/data > /dev/null 2> /dev/null &
Сохраните и выйдите (Для vim.tiny
: ESC для выхода из eiditing режима, затем :wq
сохранить и выйти)
chmod +x ~/scripts/bitcoinz
crontab -e
и добавьте в конец: @reboot/home/user1/scripts/bitcoinzВы могли установить параметры в сценарии. Вы могли также работать cron
как пользователь root, использующий sudo crontab -e
, таким образом, это могло запуститься как корень после перезагрузки.
Для создания сервиса как, Вы сказали в заголовке, сделайте следующее:
Создайте новый systemd сервис:
sudo vim.tiny /lib/systemd/system/bitcoinz.service
sudo ln -s /lib/systemd/system/bitcoinz.service /etc/systemd/system/
Вставьте рядом с ним:
[Unit]
Description=Start bitcoinz
After=suspend.target
[Service]
Type=simple
ExecStart=/home/user1/scripts/bitcoinz
RestartSec=10s
Restart=on-failure
[Install]
WantedBy=multi-user.target
Включите и запустите недавно созданный сервис:
sudo systemctl enable bitcoinz && sudo systemctl start bitcoinz
Работать с сервисом как пользователь:
mkdir -p ~/.config/systemd/user
touch ~/.config/systemd/user/ubitcoinz.service
Использовать --user
опция работать с ним
systemctl --user daemon-reload
systemctl --user enable ubitcoinz
systemctl --user start ubitcoinz
Вывод команды биткоинов мог быть просмотрен с помощью journalctl -u ubitcoinz
Для запуска пользовательского сервиса, не только если пользователь входит в систему, но при начальной загрузке:
loginctl enable-linger user1
Состояние Check: loginctl user-status user1