විධාන රේඛාවෙන් දියත් කළ සේවාවන් ආරම්භ කිරීම / නැවැත්වීම / නැවත ආරම්භ කරන්නේ කෙසේද?


154

GUI භාවිතා නොකර ඕනෑම මැක් ඕඑස් එක්ස්> = 10.5 (දිවියා-) ධාවනය කර මගේ httpd හෝ afpd නැවත ආරම්භ කරන්නේ කෙසේද? පද්ධති මනාපයන් වෙත යන්න -> "වෙබ් හුවමාරුව" බෙදාගැනීම සහ පරීක්ෂා කිරීම / පරීක්ෂා කිරීම?

මම සොයන්නේ ඩෙබියන්ගේ කැනොනිකල් හා සමානයි invoke-rc.d apache2 restart.

සංස්කරණය කරන්න: ප්‍රශ්නය වන්නේ සාමාන්‍යයෙන් දියත් කළ පාලිත සේවාවන් ගැන මිස විශේෂයෙන් අපාචේ නොවේ (-එය හුදෙක් උදාහරණයකි).


1
මෙතෙක් ලබා දී ඇති පිළිතුරු වලින්, සේවාවක් නැවත ආරම්භ කිරීම සඳහා තනි දියත් කිරීමේ විධානයක් නොමැති බව උපකල්පනය කිරීම නිවැරදි ද ?
ජේ.

@ ජේ. අත්පොත පිටුවට අනුව, විකල්පය kickstartසමඟ එක්ව -kඋපක්‍රමය කරන බව පෙනේ. මගේ පිළිතුර පහතින් බලන්න ...
jochen

Answers:


170

හායි දියත් කිරීම (8) ඔබේ මිතුරා ය. වින්‍යාස ගොනුවේ සමහර සේවාවන් (උදාහරණයක් ලෙස sshd) අක්‍රීය කර ඇති බව මතක තබා ගන්න, එවිට -wඒවා පූරණය කිරීමේදී ඔබට ස්විචය භාවිතා කිරීමට අවශ්‍ය වනු ඇත . මෙන්න sshd උදාහරණයක්:

$ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist 

උප unloadකමාන්ඩ් භාවිතයෙන් ඔබට සේවාව නැවැත්විය හැකිය .

$ sudo launchctl unload  /System/Library/LaunchDaemons/ssh.plist 

සේවාවන් ලැයිස්තුගත කිරීම සඳහා, ඔබ දැනටමත් අනුමාන කර ඇති පරිදි 'ලැයිස්තු' උප කමාන්ඩ් භාවිතා කරන්න;)

විනෝද වන්න, එන්


10
ඊට අමතරව, launchctl listපැමිණිලි නොකරන නමුත් සියල්ල නොපෙන්වයි, ඒ sudo launchctl listසඳහා අවශ්‍ය වේ.
conny

9
එය සෑම දෙයක්ම නොපෙන්වන බව නොවේ, එය සම්පූර්ණයෙන්ම වෙනස් ලැයිස්තුවක් පෙන්වයි. ඔබ launchctlසාමාන්‍ය පරිශීලකයෙකු ලෙස ධාවනය වන විට , එය ඔබගේ පරිශීලක සැසිය තුළ ක්‍රියාත්මක වන දියත් කිරීමේ නියෝජිතයන් පෙන්වයි / කළමනාකරණය කරයි; root ලෙස ධාවනය කරන්න, එය පද්ධතිය පුරා ඇති LaunchDeemons පෙන්වයි / කළමනාකරණය කරයි.
ගෝර්ඩන් ඩේවිසන්

1
මට එම ලැයිස්තුවේ "com.openssh.sshd" දැකිය හැකිය, එබැවින් වින්‍යාසය "පටවා" ඇති බව මම අනුමාන කරමි. දැන්, උදාහරණයක් ලෙස කිසිවක්sudo launchctl start com.openssh.sshd නොකරන්නේ කෙසේද , දෝෂ පණිවිඩයක් සමඟ එවාන් අසමත් නොවේ, ඊටත් වඩා අඩුවෙන් ඇත්ත වශයෙන්ම කිසිවක් දියත් කරන්නේ කෙසේද?
conny

2
@conny එය සාමාන්‍ය කාරණයේ දී ව්‍යාකූල විය හැකිය, කෙසේ වෙතත් ඔබ සේවාවක් ලියන විට සහ ආරම්භයේ දී යම්කිසි නරක දෙයක් සිදුවෙමින් පවතින බවට ඔබ සැක කරන විට, ඔබට එය වරක් පැටවිය හැකි අතර ගැටළුව නිරාකරණය කිරීම සඳහා 'stop' / 'start' භාවිතා කරන්න .
නයිඩන්

7
ඇයි කිසිදු සඳහනක් launchctl start <label>හෝ launchctl stop <label>? එය දැනටමත් දියත් කිරීම මඟින් ආරම්භ කර ඇත්නම්, ප්ලිස්ට් ගොනුව නැවත පූරණය කිරීමේ අවශ්‍යතාවයක් නොමැත (එය වෙනස් නොවන්නේ නම්?). නියෝගයක් restartහෝ reloadවිධානයක් නොමැති වීම කරදරයකි. තනි විධාන ක්‍රමයක් ගැන කවුරුහරි දන්නවාද (නිදසුනක් ලෙස) මොන්ගෝඩ් වින්‍යාස ගොනු වෙනස් කිරීමක් තෝරා ගන්නේද? මම සෑහීමකට පත් නොවෙමි ... stop ... && ... start ....
බ්‍රයන්

7

sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist


7

සේවාවක් නැවත ආරම්භ කිරීම සඳහා, ඔබට විකල්පය launchctl kickstartසමඟ විධානය භාවිතා කළ -kහැකිය. උදාහරණයක් ලෙස, අපාචේ නැවත ආරම්භ කිරීම සඳහා, ඔබට භාවිතා කළ හැකිය

sudo launchctl kickstart -k system/org.apache.httpd

මෙම තොරතුරු launchctlඅත්පොතෙන්:

 kickstart [-kp] service-target
          Instructs launchd to run the specified service immediately, regardless of its
          configured launch conditions.

          -k       If the service is already running, kill the running instance before
                   restarting the service.
          [...]

1
මම මෙය උත්සාහ කළ විට මගේ සේවාව එල්ලී තිබුනි, එය ටික වේලාවක් බලා සිටීමෙන් නතර වූයේ නැත, පිඩ් එක මත "මරන්න" උදව් නොකළේය, පිඩ් එකේ "මරන්න -9" කිරීම ක්‍රියාවලිය විනාශ කර කික්ස්ටාර්ට් (වෙනත් තැනක ධාවනය වෙමින් පැවති) මම ක්‍රියාවලිය විනාශ කිරීමට උත්සාහ කරන අතරතුර කොන්සෝලය) දිගටම සේවාව ආරම්භ කරන්න. දේවල් අතින් මරා දැමීමට පෙර මම බොහෝ වේලාවක් බලා නොසිටි අතර, එම නිසා ගැටලුව විසඳීමට බොහෝ කාලයක් බලා සිටීම ප්‍රමාණවත් විය හැකිය.
සැමුවෙල් ඔස්ලන්ඩ්

6

ඔබට සරලවම කළ හැකිය

sudo launchctl stop com.openssh.sshd

ඔබ සම්පූර්ණ සේවා නාමය නොදන්නේ නම්, ඔබට එය කළ හැකිය

sudo launchctl list

ඔබ තවමත් ඔබ අපේක්ෂා කළ සේවාව සොයාගත නොහැකි නම්, මූල අනන්‍යතාවය නොමැතිව ධාවනය කිරීමට උත්සාහ කරන්න:

launchctl list

ඔබට සේවාව බෑම සහ පැටවීම අවශ්‍ය නොවේ.


1
මම මෙය උත්සාහ කළ අතර දැන් මට sshමගේ මැක් වෙතින් භාවිතා කළ නොහැක . නැවත ආරම්භ කිරීම නිවැරදි නොවේ. ආදේශ stopකිරීම startද නිවැරදි නොවේ.
පී අයි

1
මම මෙය උත්සාහ කළ අතර මට තවමත් මගේ මැක් වෙත යා හැකිය!
මයිකල්

@ dmitriy-apollonin එය ක්‍රියා නොකරයි, sudo unload /System/Library/LaunchDaemons/ssh.plistඒ වෙනුවට ඔබ භාවිතා කළ යුතුය .
සෙබ්මා

ප්‍රශ්නය වන්නේ සේවාවක් නැවත ආරම්භ කිරීම ගැන ය, නමුත් launchctl stopඑය සේවාවක් නැවත ආරම්භ කිරීමක් යැයි මම නොසිතමි .
ජොචෙන්

3

ඔබ සොයන launchctl.

SYNOPSIS
 launchctl [subcommand [arguments ...]]

DESCRIPTION
 launchctl interfaces with launchd to load, unload daemons/agents and gen-
 erally control launchd.  launchctl supports taking subcommands on the
 command line, interactively or even redirected from standard input.
 These commands can be stored in $HOME/.launchd.conf or /etc/launchd.conf
 to be read at the time launchd starts.

2
නමුත් මිනිස් පිටුව කියවීමෙන් මට සමාන වන්නේ කුමක්දැයි invoke-rc.d my-little-daemon restartනොකියයි ... එය "job_label" යන්නෙන් අදහස් කරන නමුත් පවතින "job_label" ලැයිස්තුගත කරන්නේ කෙසේදැයි මට නොකියයි.
conny

මම හිතන්නේ නයිඩන්ගේ ප්‍රතිචාරය මෙය ආවරණය කර ඇත.
eric.s

2

ඔබ සොයන්නේ නම් launchctl reload, මා කළ ~/.bashrc/.zshrcආකාරයටම ඔබට ෂෙල් ක්‍රියාකාරිත්වය අර්ථ දැක්විය හැකිය :

function lctl {
    COMMAND=$1
    PLIST_FILE=$2
    if [ "$COMMAND" = "reload" ] && [ -n "$PLIST_FILE" ]
      then
        echo "reloading ${PLIST_FILE}.."
        launchctl unload ${PLIST_FILE}
        launchctl load ${PLIST_FILE}
      else
        echo "either command not specified or plist file is not defined"
    fi
}

විධාන ක්‍රියාත්මක කිරීම -> ලෙස පෙනේ lctl reload <your-plist-name>.plist


0
sudo apachectl restart

වෙනත් OSses සමඟ ක්‍රියා කරන අතර එය Apache හි කොටසකි.


1
මාතෘකාවේ විශේෂයෙන් අපාචේ ගැන සඳහන් නොවුනත්, මම මෙම අර්ථ නිරූපණය අපේක්ෂා කළ යුතුව තිබුණි .... මට කණගාටුයි, නමුත් එය මා සොයන දේ නොවේ :)
conny

හරි, මම, httpd කොටසක් catched apachectl භාවිතා සඳහා පහසු ප්රභේද්යයක් :) වේ
ස්වෙන්

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.