පිළිතුර රඳා පවතින්නේ විචල්යය නියත විය යුතුද (එනම්, පරිශීලකයා ඒකකය ලබා ගැනීමෙන් වෙනස් කළ යුතු නොවේ) හෝ විචල්යය (පරිශීලකයා විසින් සැකසිය යුතුය) යනුවෙනි.
එය ඔබගේ දේශීය ඒකකය බැවින්, මායිම තරමක් බොඳ වී ඇති අතර දෙයාකාරයෙන්ම ක්රියා කරයි. කෙසේ වෙතත්, ඔබ එය බෙදා හැරීමට පටන් ගෙන එය අවසන් /usr/lib/systemd/system
වුවහොත් මෙය වැදගත් වනු ඇත.
නියත වටිනාකම
එක් අවස්ථාවකට අගය වෙනස් කිරීමට අවශ්ය නොවන්නේ නම්, වඩාත් කැමති ක්රමය එය Environment=
සෘජුවම ඒකක ගොනුවේ තැබීමයි:
[Unit]
Description=My Daemon
[Service]
Environment="FOO=bar baz"
ExecStart=/bin/myforegroundcmd
[Install]
WantedBy=multi-user.target
එහි ඇති වාසිය නම් විචල්යය ඒකකය සමඟ තනි ගොනුවක තබා ගැනීමයි. එබැවින්, ඒකක ගොනුව පද්ධති අතර ගමන් කිරීම පහසුය.
විචල්ය අගය
කෙසේ වෙතත්, සයිසැඩ්මින් විසින් පාරිසරික විචල්යයේ වටිනාකම දේශීයව වෙනස් කළ යුතු යැයි සිතන විට ඉහත විසඳුම හොඳින් ක්රියාත්මක නොවේ. වඩාත් නිශ්චිතවම, ඒකක ගොනුව යාවත්කාලීන කරන සෑම අවස්ථාවකම නව අගය සැකසිය යුතුය.
මෙම අවස්ථාව සඳහා, අතිරේක ගොනුවක් භාවිතා කළ යුතුය. කෙසේද - සාමාන්යයෙන් බෙදා හැරීමේ ප්රතිපත්තිය මත රඳා පවතී.
විශේෂයෙන් සිත්ගන්නා විසඳුමක් වන්නේ /etc/systemd/system/myservice.service.d
නාමාවලිය භාවිතා කිරීමයි . වෙනත් විසඳුම් මෙන් නොව, මෙම නාමාවලිය systemd විසින්ම සහාය දක්වන අතර එම නිසා බෙදා හැරීමේ විශේෂිත මාර්ග නොමැත.
මෙම අවස්ථාවේදී, ඔබ /etc/systemd/system/myservice.service.d/local.conf
ඒකක ගොනුවේ නැතිවූ කොටස් එකතු කරන ගොනුවක් තබයි :
[Service]
Environment="FOO=bar baz"
පසුව, systemd සේවාව ආරම්භ කරන විට ගොනු දෙක ඒකාබද්ධ කරයි ( systemctl daemon-reload
ඒවායින් එකක් වෙනස් කිරීමෙන් පසුව මතක තබා ගන්න ). මෙම මාර්ගය systemd විසින් කෙලින්ම භාවිතා කරන බැවින්, ඔබ මේ EnvironmentFile=
සඳහා භාවිතා නොකරයි .
බලපෑම වෙනස් කළ යුත්තේ සමහර බලපෑමට ලක්වූ පද්ධති මත පමණක් නම්, ඔබට විසඳුම් දෙකම ඒකාබද්ධ කළ හැකිය, පෙරනිමිය කෙලින්ම ඒකකයේ සහ අනෙක් ගොනුවේ දේශීය පෙරළියක් සපයයි.
sysconfig
මාර්ගය ෆෙඩෝරාට විශේෂිත නමුත් ප්රශ්නය වන්නේ ආර්ච් ලිනක්ස් ගැන ය. පලුහ්ගේ පිළිතුර වඩාත් සිත්ගන්නා සුළු යැයි මම සිතමි