У меня есть виртуальная машина под управлением Fedora OS. У этой виртуальной машины четыре пользователя, скажем, (A, B, C, D). На этой виртуальной машине под каждым пользователем выполняется по одному процессу. Итак, когда эта виртуальная машина перезагружается, что мне делать, чтобы этот процесс автоматически запускался под соответствующим пользователем.
При условии, что
a - это настраиваемая команда для запуска процесса под пользователем A
b - это настраиваемая команда для запуска процесса под пользователем B
c - это настраиваемая команда для запуска процесса под пользователем C
d - это настраиваемая команда для запуска процесса под пользователем D
a, b, c, d - команды, недоступные пользователю root. Они доступны только для соответствующих пользователей.
Спасибо
Создайте отдельный сценарий инициализации Systemd для процессов. Для процесса A создайте файл /etc/systemd/system/A.service
и добавьте к нему что-то вроде этого:
[Unit]
Description=Process A
After=network.target
[Service]
User=userA
Type=forking
ExecStart=/some/command/to/run --arg1 --arg2
Restart=on-failure
StartLimitInterval=5min
StartLimitBurst=4
[Install]
WantedBy=multi-user.target
Настройте это по своему усмотрению (Restart, StartLimitInterval, StartLimitBurst и т. Д.)
Затем включите его с помощью
systemctl enable A.service
и начать
systemctl start A.service
Можете ли вы использовать / etc / crontab и время @reboot. Формат файла / etc / crontab принимает имя пользователя после указания времени, и процесс запускается от имени этого пользователя.
@reboot A /path/to/a
@reboot B /path/tob
и так далее.