【问题标题】:how to open daytime service on mac using launchctl?如何使用launchctl在mac上打开日间服务?
【发布时间】:2013-05-05 07:33:59
【问题描述】:

嗯,网上有解决linux日间服务启动的办法。 但我找不到 Mac 的解决方案。 我不知道我是不是应该先找到daytime的可执行文件,然后写一个.plist文件,或者只是有一些内置的东西,我需要做的就像在linux上一样 - 就是'turn disable to没有'。

【问题讨论】:

    标签: macos xinetd


    【解决方案1】:

    恐怕我没有足够的代表发表评论,所以请原谅答案;

    取自here

    1. 将 Boost.ASIO 库用于 C++ serverclient
    2. 将服务器编译为“boost_daytime_server”并链接到 /usr/local/bin/
    3. 将以下 plist 文件拖放到 /Library/LaunchDaemons
    <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
        <plist version="1.0">
        <dict>
                <key>Debug</key>
                <false/>
                <key>GroupName</key>
                <string>staff</string>
                <key>Label</key>
                <string>my_organisation.daytime</string>
                <key>OnDemand</key>
                <false/>
                <key>Program</key>
                <string>/usr/local/bin/boost_daytime_server</string>
                <key>ServiceDescription</key>
                <string>Daytime Server with Boost</string>
                <key>UserName</key>
                <string>root</string>
        </dict>
        </plist>
    
    1. 并加载到 OS X 中
    sudo lauchctl load /Library/LaunchDaemons/my_organization.daytime.plist
    

    我们可以使用以下方法测试客户端:

    ./client schorsch.efi.fh-nuernberg.de
    

    【讨论】:

    • 感谢木佐本。我担心的是,以前在 linux 世界中,白天服务是标准的,如果你需要它,只需运行“inetd start daytime”。但后来,出于安全原因,白天服务被禁用,但如果你需要它,你仍然可以通过运行 xinetd 来启用它。但是,在Mac的世界里,inetd和xinet都变成了launchctl,我找不到一个简单的内置支持的方式来启动daytime servrice。我可以编写一个简单的 C++ 文件作为白天服务器运行,但我只想知道“Mac 中曾经在 linux 发行版中可用的所有标准服务在哪里?”
    • 同意@wuhaochi。很抱歉,这是我能为我的 Mac 想出的唯一选择。我知道如果有任何安慰的话,你可以编译和运行 xinetd 和 launchctl(只要它不尝试使用相同的端口)。
    猜你喜欢
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 2011-11-17
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多