[Фікс] No such file or directory @ rb_sysopen - tmp/pids/server.pid

Зміст дописунатисність на посилання, щоб перейти до потрібного місця
Іноді буває так, що тека tmp/pids губиться на локальній машині. Вона знаходиться з зрозумілих причин у gitignore. Як результат, сервер не може стартанути і показує помилку:
* Listening on http://0.0.0.0:3000bundler: failed to load command: puma (/Users/memecode/.rbenv/versions/3.3.5/bin/puma)/Users/memecode/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/puma-6.5.0/lib/puma/launcher.rb:316:in `write': No such file or directory @ rb_sysopen - tmp/pids/server.pid (Errno::ENOENT)
Текст помилики доволі буквальний:
No such file or directory @ rb_sysopen - tmp/pids/server.pid

Фіскимо помилку

Нам треба створити теку tmp/pids самостійно. Для цього можна з терміналу запустити:
mkdir -p tmp/pids
Перезапускаємо сервер, і він має успішно стартанути створивши файл server.pid.
Cуто з цікавості можна перевірити:
ls tmp/pids 
Має показати файл:
server.pid

Для чого потрібен server.pid?

Файл server.pid використовується сервером Rails для зберігання ідентифікатора процесу (PID) активного серверного процесу. Цей PID допомагає системі відстежувати, який саме процес відповідає за сервер. Перед запуском нового сервера Rails перевіряє наявність цього файлу. Якщо файл є, а процес, на який він вказує, досі активний, Rails не дозволяє запустити новий сервер, щоб уникнути конфліктів. 
Тобто саме цей відповідає за те, щоб ви випадково не запустили другий сервер за допомогою rails s в сусідній табі терміналу.
Крім того, файл допомагає правильно завершити роботу сервера. Коли сервер зупиняється, файл server.pid автоматично видаляється, сигналізуючи, що сервер більше не працює і його можна перезапустити без проблем. Якщо ж файл відсутній, Rails створює його при старті. У випадку, якщо файл існує, але процес, на який він посилається, вже неактивний, це може викликати помилку, і тоді файл потрібно видалити вручну перед повторним запуском сервера.
Категорії: Програмування

🔗 Цитувати допис: "[Фікс] No such file or directory @ rb_sysopen - tmp/pids/server.pid"

Якщо ви хочете процитувати цей допис у своїй роботі, статті, блозі, використовуйте наведену нижче інформацію.

Розгорнути деталі


🙌 Підтримати блог @memecode

Ви можете поширити цей допис у соцмережах, чим допоможете платформі цейво розвиватись (* ^ ω ^)

📝 Більше публікацій:
Обкладинка нотатки:  Що означає ACID принцип у програмуванні?
Обкладинка нотатки: Що таке Сonvention over Сonfiguration (в контексті RoR і не тільки)?
Обкладинка нотатки: Округлення десяткових чисел: математичні правила, JavaScript і Ruby
Обкладинка нотатки: [Фікс] Factory not registered: "user" (KeyError) (FactoryBot / Rails 7)
Обкладинка нотатки: Що таке PORO в Ruby?
Обкладинка нотатки: Чим відрізняються spec_helper.rb і rails_helper.rb у RSpec?
Обкладинка нотатки: Що потрібно знати, щоб побудувати успішну кар'єру на фрілансі в IT
Обкладинка нотатки: Віртуальний хмарний сервер: що це таке та в чому його особливість
Обкладинка нотатки: [Fix] Heroku / SearchBox addon - помилка ідексації "The client is unable to verify that the server is Elasticsearch"
Дисклеймер

Інформація на сайті tseivo.com є суб'єктивною та відображає особисті погляди та досвід авторів та авторок блогів.

Використовуйте цей ресурс як одне з декількох джерел інформації під час своїх досліджень та прийняття рішень. Завжди застосовуйте критичне мислення. Людина сама несе відповідальність за свої рішення та дії.