आप वास्तव में, वास्तव में ऐसा नहीं करना चाहते हैं। Postgres एक ऑपरेटिंग सिस्टम नहीं है, यह एक डेटाबेस सर्वर है। भले ही डेटाबेस अनुसूचित कार्यों को चलाने का समर्थन करता है, लेकिन डेटाबेस को उस तरह से दुरुपयोग करना वास्तव में एक अच्छा विचार नहीं है।
यदि आपकी चिंता यह है कि आप पासवर्ड और सामान सेटअप नहीं करना चाहते हैं, तो इसे हल करना आसान है। इसके बजाय ट्रस्ट या पहचान प्रमाणीकरण का उपयोग करके एक स्थानीय यूनिक्स सॉकेट कनेक्शन स्थापित करें , उस उपयोगकर्ता के रूप में अपना क्रोनजोब चलाएँ
इसके आउट ऑफ बॉक्स कॉन्फ़िगरेशन में, आमतौर पर पोस्ट postgres
सर्वर डीबी सर्वर को चलाने के लिए सिस्टम उपयोगकर्ता को सेट करता है, और यह सिस्टम उपयोगकर्ता आमतौर पर पहले से ही कॉन्फ़िगर होता है, इसलिए यह स्थानीय सर्वर से विश्वास करते हुए स्थानीय यूनिक्स सॉकेट के माध्यम से कनेक्ट करते हुए कनेक्ट कर सकता है। आप अपने क्रोनजॉब को सिस्टम उपयोगकर्ता के रूप में चला सकते हैं, स्थानीय सॉकेट से कनेक्ट कर सकते हैं, और फिर भूमिका को स्विच कर सकते हैं यदि आप नहीं चाहते हैं कि आपकी संग्रहित प्रक्रिया सुपरसुसर विशेषाधिकार के साथ चले।
डिफ़ॉल्ट सेटअप में, आप ऐसा कर सकते हैं:
$ sudo -u postgres crontab -e
संपादक में, crontab प्रविष्टि में इस तरह जोड़ें:
0 0 * * * bash /path/to/run_stored_procedure.sh
और अपने / inpath/to/run_stored_procedure.sh फ़ाइल में आप बस अपनी दुकानों को कॉल करने के लिए psql का उपयोग करें
#!/usr/bin/env bash
psql my_db_name <<END
SET ROLE limited_user;
SELECT my_stored_proc();
SELECT 1 FROM my_stored_proc();
END