এনভায়রনমেন্ট সিস্টেমযুক্ত নির্দেশাবলী = কীভাবে নির্দিষ্ট করবেন?


20

আমি একটি Environment systemdনির্দেশাবলী সমন্বিত নির্দিষ্ট করতে চাই =, যেমন

Environment=CATALINA_OPTS=-Dappserver.home=/var/lib/archiva/apache-tomcat-current -Dappserver.base=/var/lib/archiva/apache-tomcat-current

এবং ত্রুটি পেতে

[/lib/systemd/system/archiva.service:10] Invalid environment assignment, ignoring: CATALINA_OPTS=-Dappserver.home\=/var/lib/archiva/apache

মধ্যে journalctl -xe। আমি উদ্ধৃত করার চেষ্টা "এবং 'এবং অব্যাহতি =দিয়ে \সাফল্য পায়নি। এটি নিবন্ধিত বলে মনে হচ্ছে।

উত্তর:


40

আমি মনে করি আপনার সমস্যাটি পরিবেশের ভেরিয়েবলের বিষয়বস্তুগুলির স্থানের কারণে। সিস্টেমড ডক্সের উদাহরণগুলি দেখে , একটি অ্যাসাইনমেন্টটি একটি একক স্ট্রিং হওয়া উচিত:

উদাহরণ:

Environment="ONE=one" 'TWO=two two'
ExecStart=/bin/echo $ONE $TWO ${TWO}

এই চালানো হবে / বিন / চার আর্গুমেন্ট সহ echo: one, two, two, এবং two two।

উদাহরণ:

Environment=ONE='one' "TWO='two two' too" THREE=
ExecStart=/bin/echo ${ONE} ${TWO} ${THREE}
ExecStart=/bin/echo $ONE $TWO $THREE

প্রতিধ্বনি এই ফলাফল দুইবার বলা হচ্ছে, আর্গুমেন্ট সহ প্রথমবার 'one', 'two two' too, , এবং আর্গুমেন্ট সহ দ্বিতীয় সময় one, two two, too।

আমি নিম্নলিখিত পরিষেবার সাথে এটি পরীক্ষা করেছি (পুরো কার্যভারের চারপাশে উদ্ধৃতিগুলি নোট করুন):

[Unit]
Description=My Daemon

[Service]
Environment='CATALINA_OPTS=-Dappserver.home=/var/lib/archiva/apache-tomcat-current -Dappserver.base=/var/lib/archiva/apache-tomcat-current'
ExecStart=/bin/echo ${CATALINA_OPTS}

[Install]
WantedBy=multi-user.target

এবং এতে কাঙ্ক্ষিত আউটপুট পেয়েছে journalctl:

Apr 26 08:19:29 laptop echo[28439]: -Dappserver.home=/var/lib/archiva/apache-tomcat-current -Dappserver.base=/var/lib/archiva/apache-tomcat-current

অবশ্যই, এটি EnvironmentFileপরিবর্তে ব্যবহার করা সহজ হবে। Environmentনিম্নলিখিতগুলির সাথে প্রতিস্থাপন করা একই পছন্দসই ফলাফল দিয়েছে:

EnvironmentFile=/tmp/foo

যেখানে /tmp/fooরয়েছে (কোটের অভাব নোট করুন):

CATALINA_OPTS=-Dappserver.home=/var/lib/archiva/apache-tomcat-current -Dappserver.base=/var/lib/archiva/apache-tomcat-current

এটা (যেমন ব্যবহার করে উদ্ধৃত কোট বিষয় আসে, তখন CATALINA_OPTSএ systemdএ্যাপাচি পরিবেশ tomcat7.0.61) ব্যবহার EnvironmentFileসত্যিই যেতে উপায়। ধন্যবাদ!
— কার্ল রিখটার

উবুন্টুতে এনভায়রনমেন্ট ফাইল রাখার জন্য স্ট্যান্ডার্ড / কনভেনশন ডিরেক্টরিটি কী? অন্যান্য সিস্টেমে আমি / etc / sysconfig /
— দাভোস

1
@ দাওস একটি যুক্তিসঙ্গত জায়গা হবে /etc/default। সেখানকার ফাইলগুলি initতিহাসিকভাবে সংশ্লিষ্ট স্ক্রিপ্টগুলির সাথে সংশ্লিষ্ট পরিবেশের ভেরিয়েবল স্থাপনের জন্য ব্যবহৃত হয়েছে।
— মুরু

আমার এই ফাইলটি ইতিমধ্যে আমার সিস্টেমে / ইত্যাদি / পরিবেশে রয়েছে যার মধ্যে একটি PATH ভেরিয়েবল রয়েছে, সেগুলি সংবেদনশীল হতে পারে?
— দাভোস

1
@ ডেভস যা সিস্টেমভিত। ব্যবহারিকভাবে প্রতিটি প্রক্রিয়াটির জন্য ভেরিয়েবল সেট করার কোনও সমস্যা না থাকলে অবশ্যই নিশ্চিত। নোট যে /etc/environmentশেল দ্বারা প্রক্রিয়া করা হয় না; সরল ভেরিয়েবল অ্যাসাইনমেন্ট বাদে, এর সিনট্যাক্স উপরে উল্লিখিত সিস্টেমড সিনট্যাক্স বা সাধারণ শেল সিনট্যাক্সের থেকে খুব আলাদা।
— মুরু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.