Systemd සේවාව ආරම්භ කිරීමට පෙර chdir ක්‍රියාත්මක කිරීම


155

ප්‍රශ්නය: මට systemd සමඟ ක්‍රියාවලියක් ආරම්භ කර එම ක්‍රියාවලිය මා තෝරා ගැනීමේ වැඩ නාමාවලියක් පැවරිය හැකිද?

මට ආරම්භ කිරීමට අවශ්‍ය සේවාවක් මා සතුව ඇත systemd. එම සේවාව ආරම්භ කරන විට, එය වර්තමාන වැඩ කරන නාමාවලියක් ලබා දීමට මට අවශ්‍යය. මම භාවිතා කරන්නේ නම් මෙය කරන්නේ කෙසේදැයි මම දනිමි init, නමුත් මට ගැටලුවක් තිබේ systemd.

මෙන්න මම වැඩ කිරීමට උත්සාහ කළ දේ.

මගේ සේවය

මම සරල උපයෝගීතාවයක් ("listdir") නිර්මාණය කළෙමි, එය පයිතන් හි ලියා, සහ /opt/bin/listdir:

#! /usr/bin/python

import os

print 'Current working directory: %s' % (os.getcwd())

මගේ වින්‍යාස ගොනුව

මම පසුව listdir.serviceගොනුවක් සාදා systemdඑය මෙහි තැබුවෙමි /lib/systemd/system/listdir.service:

[Unit]
Description=Test of listing CWD.

[Service]
ExecStartPre=chdir /usr/local
ExecStart=/opt/bin/listdir
StandardOutput=syslog
StandardError=syslog

[Install]
WantedBy=multi-user.target

ගැටලුව

මම systemctl start listdirමගේ පද්ධති ලොගය ක්‍රියාත්මක කරන විට මූල ඩිරෙක්ටරිය ("/") වත්මන් වැඩ කරන ඩිරෙක්ටරිය ලෙස සටහන් කරයි. ඇත්ත වශයෙන්ම, /usr/localවත්මන් නාමාවලිය ලෙස මම අපේක්ෂා කළෙමි , මන්දයත් ExecStartPreක්‍රියාවලිය ආරම්භ කිරීමට පෙර නාමාවලි වෙනස් කරනු ඇතැයි මම සිතුවෙමි .

නිසැකවම, මම systemdසිතන්නේ එය ෂෙල් ස්ක්‍රිප්ට් වැනි දෙයක් ක්‍රියා කරනු ඇති බවයි (එය ෂෙල් ස්ක්‍රිප්ට් නොවන බව මා දැන සිටියත්). මා කළ යුත්තේ කුමක්ද යන්න පිළිබඳව යමෙකුට අදහසක් ලබා දිය හැකිද? භාවිතයෙන් වැඩ කරන නාමාවලියක් සැකසීමට පවා systemdහැකිද? ස්තූතියි!


සංස්කරණය කරන්න: මගේ පද්ධති ලොගය දෝෂයක් වාර්තා කරයි. (මම දැක්කා.)

Executable path is not absolute, ignoring: chdir /usr/local 

ඉතින්, chdirෂෙල් විධානයක් මිස ක්‍රියාත්මක කළ හැකි එකක් නොවේ. හරි හරී. නමුත් ඩිරෙක්ටරි භාවිතා කර වෙනස් කිරීමට මට තවමත් ක්‍රමයක් systemdතිබේද?

Answers:


289

Systemd> = 227 හි ඔබට භාවිතා කළ හැකි විය යුතුය:

[Service]
WorkingDirectory=/usr/local

ඔබේ ස්ක්‍රිප්ට් එක එහි ක්‍රියාත්මක කිරීමට.

( DOCS )


5
ඔබ මෙය සොයාගත්තේ කෙසේද? එය ලේඛනයේ කොතැනකවත් සඳහන් නොවේ !
ජේම්ස්ෆිෂර්


3
Ric එරික් රෙනූෆ් ආහා, ඔවුන් එම බෙදාගත් විකල්පයන් සේවා ලේඛනයේ අනුපිටපත් කළ යුතුය
ජේම්ස්ෆිෂර්

3
ඉතින් පැහැදිලි කිරීම සඳහා, මෙය [Service]කොටසට යයිද?
dthor

4
අනුවාදය නොතකා එය නවතම CentOS 7 හි වැඩ කළේය.
බ un නෝ ජේසීඑම්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.