हमारे द्वारा लिखी गई सेवा के लिए मुझे आंशिक रूप से पूर्ण RPM युक्ति दी गई है। यह आवश्यक निर्देशिकाओं को बनाने, फ़ाइलों की प्रतिलिपि बनाने, अनुमतियाँ सेट करने आदि के रूप में मिलता है, लेकिन यह आवश्यक सिस्टम खाता नहीं बनाता है जो सेवा के तहत चलेगा। मुझे बताया गया था कि आरपीएम के लिए यह ध्यान रखना सबसे अच्छा है, इसलिए मैंने जोड़ा है
Requires(pre): /usr/sbin/useradd
%pre
useradd -r -d /path/to/program -s /bin/false myservice
यह उपयोगकर्ता खाता (और संबद्ध समूह) बनाने में सफल होता है, इसलिए बाद में जब वह सेवा की फ़ाइलों पर स्वामित्व / अनुमतियाँ सेट करने का प्रयास करता है, तो वह भी सफल होता है।
मेरी वर्तमान समस्या है, एक) यदि उपयोगकर्ता खाता पहले से मौजूद है, तो आरपीएम इंस्टॉल विफल रहता है क्योंकि useradd
विफल रहता है (क्योंकि उपयोगकर्ता पहले से मौजूद है); और b) मुझे नहीं पता कि rpm -e myservice
संबंधित उपयोगकर्ता और समूह को कैसे निकालना है।