برنامه ادو با نوشتن یک دستور پایتون اجرا می شود. اما اگر بخواهیم که ادو همیشه در حال اجرا باشد و پس از بالا آمدن لینوکس ، ادو هم اجرا شود باید یک سرویس برای این کار بسازیم. نحوه ساخت سرویس در ubuntu به این صورت است که در مسیر /etc/systemm/system فایل با نام دلخواه درست می کنیم و کانفیگ سرویس رو در آنجا می گذاریم. در ادامه نمونه سرویس و توضیحاتی از آن آورده شده است
[Unit] Description=Odoo 18 Service Requires=postgresql.service After=network.target nginx.service postgresql.service [Service] Type=simple SyslogIdentifier=odoo18 PermissionsStartOnly=true User=root Group=root WorkingDirectory=/opt/odoo18 ExecStart=/opt/odoo18/odoo-venv/bin/python3 /opt/odoo18/odoo-bin -c /opt/odoo18/odoo.conf --dev xml Restart=on-failure RestartSec=5s #StandardOutput=append:/var/log/odoo/odoo.log #StandardError=append:/var/log/odoo/odoo.log [Install] WantedBy=multi-user.target
و اما توضیحاتی از کانفیگ :
-
- خط 4 : این رو بیان می کنه که قبلا از اجرای سرویس ادو ، صبر کن تا این سرویس ها اجرا شوند
- خط 8: اسم سرویس هست که در ابونتو با این اسم سرویس رو مدیریت می کنیم
- خط 10 و 11 : یوزری هست که می خواهیم با آن یوزر سرویس رو اجرا کنیم مسلما این یوزر باید دسترسی اجرای این سرویس رو داشته باشه که من برای اطمینان از root استفاده کردم
- خط 13: اجرا دستور هست. نکته ای که در اینجا هست اینه که خود دستور و پارامترهای آن رو باید با آدرس کامل آنها بنویسیم و اینکه دقت داشته باشید اگر از venv استفاده می کنید، پایتون رو از آن مسیر اجرا کنید.
- خطوط 16 و 17 : برای دریافت خطاهایی که از اجرای سرویس ایجاد می شد است که در مسیر تعریف شده آنها رو می تونید پیدا کنید. من اونها رو کامنت کردم که سرعت سیستم کم نشه و هر وقت که دچار مشکل شد، اونها رو فعال می کنم
پس از ساخت سرویس نوبت فعال سازی و اجرای آن است.
sudo systemctl enable odoo18.service sudo systemctl start odoo18.service
برای دیدن وضعیت سروین هم از دستور زیر می توانید استفاده کنید:
sudo systemctl status odoo18.service
لطفا از سوالات و پیشنهادات خود کامنت بگذارید، متشکرم