V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
coolicer
V2EX  ›  iDev

各位开发的时候,那些服务是怎么启动的。

  •  
  •   coolicer · 2015-04-14 08:50:16 +08:00 · 4192 次点击
    这是一个创建于 3513 天前的主题,其中的信息可能已经有所发展或是发生改变。
    像mysql redis nginx我装上去都是每次开机要启动,不知道怎么做成服务。或者是做成命令,一条命令启动他们。谢谢
    28 条回复    2015-04-30 15:10:11 +08:00
    EXDestroyer
        1
    EXDestroyer  
       2015-04-14 09:03:51 +08:00
    同问
    582033
        2
    582033  
       2015-04-14 09:05:15 +08:00


    我是这么搞的..
    coolicer
        3
    coolicer  
    OP
       2015-04-14 09:06:26 +08:00
    我看到一个,当中有一条是按需加载,我感觉也对,有时候你不开发就不启动这些服务也正常。
    http://stepquick.net/blog/2014/04/28/start-nginx-at-launch-on-mavericks/
    fyooo
        4
    fyooo  
       2015-04-14 09:06:32 +08:00
    难道不是在systemd上配置开机启动么?比如
    systemctl enable nginx
    systemctl start nginx
    iiduce
        5
    iiduce  
       2015-04-14 09:06:37 +08:00
    我用supervisor配置的
    ETiV
        6
    ETiV  
       2015-04-14 09:09:49 +08:00 via iPhone
    你用goagent的话可以从他的local目录下找到一个Plist文件,可以基于那个改一改。

    在系统启动时执行一个脚本,脚本里启动所有服务。

    具体怎么用你可以搜一下launchctl。
    holystrike
        7
    holystrike  
       2015-04-14 09:32:42 +08:00
    做到vagrant虚拟机里
    feelapi
        8
    feelapi  
       2015-04-14 10:04:16 +08:00
    vagrant正解,随便折腾。
    Felldeadbird
        9
    Felldeadbird  
       2015-04-14 10:13:25 +08:00
    把启动命令写成shell脚本。
    把启动命令写到开启启动中。
    解决啦
    yueyoum
        10
    yueyoum  
       2015-04-14 10:21:00 +08:00
    自己安装的东西都是自己手动启动。
    反正一周关一次机
    ooxxcc
        11
    ooxxcc  
       2015-04-14 10:25:29 +08:00   ❤️ 1
    mac的话可以试试launchrocket
    sobigfish
        12
    sobigfish  
       2015-04-14 11:16:05 +08:00
    homestead+vagrant
    也可以用brew+LaunchRocket
    randoms
        13
    randoms  
       2015-04-14 12:56:11 +08:00
    可以看看这里 写一个简单的配置文件就可以了。http://nowhere.shareyan.cn/blog/randoms/54b1d4212e5700051da751f1
    msg7086
        14
    msg7086  
       2015-04-14 13:19:04 +08:00
    软件不是装完就会自动设置为启动服务的吗?从sysv到upstart到systemd时代不都是这样……
    randyzhao
        15
    randyzhao  
       2015-04-14 13:21:58 +08:00
    这....
    chkconfig --level 35 service_name
    不就自启动了么...
    9hills
        16
    9hills  
       2015-04-14 13:22:39 +08:00
    按需启动啊,用docker

    cd到开发目录后自动启动
    mephisto
        17
    mephisto  
       2015-04-14 13:55:54 +08:00
    http://en.wikipedia.org/wiki/Init
    大部分应用都带有启动脚本的(比如nginx redis),没有的自己写一个
    599316527
        18
    599316527  
       2015-04-14 15:56:48 +08:00
    做成開機啟動 chkconfig
    或者我是寫個 shell 腳本要用的時候跑一下
    Livid
        19
    Livid  
    MOD
       2015-04-14 16:54:54 +08:00
    不要自己编译,除非你有特别需求。

    如果用的是第三方的包提供的话,大部分都是带了启动脚本的。

    如果是在 Mac 上,那么推荐用 brew 安装这些软件。
    abcfyk
        20
    abcfyk  
       2015-04-14 20:10:53 +08:00
    难道不是把启动命令写到/etc/rc.local 下就OK了吗? 还用得着装第三方软件?
    metrue
        21
    metrue  
       2015-04-14 20:55:38 +08:00 via iPhone
    用crontab可以很好解决。 @reboot <you cmd>
    sobigfish
        22
    sobigfish  
       2015-04-14 21:22:41 +08:00
    @msg7086
    @599316527
    @abcfyk

    自己开发的机器又不是服务器,一直开着费资源啊。
    lincanbin
        23
    lincanbin  
       2015-04-14 21:55:49 +08:00
    chkconfig
    jevonszmx
        24
    jevonszmx  
       2015-04-15 09:18:45 +08:00
    @metrue

    我就是这么做的,写个shell脚本,把常见的服务写进去,如:

    touch /usr/local/bin/service.sh

    ```
    #!/bin/bash

    # apache
    sudo /usr/local/apache2/bin/apachectl -k start

    # svnserve
    /Applications/Xcode.app/Contents/Developer/usr/bin/svnserve -d -r /Volumes/Data/Documents/svn/

    #redis
    /usr/local/bin/redis-server /usr/local/redis/6379.conf
    ```


    然后:
    ```
    crontab -e
    ```

    写入:

    ```
    @reboot /usr/local/bin/service.sh
    ```
    metrue
        25
    metrue  
       2015-04-15 09:20:29 +08:00
    @jevonszmx 对,就是这样。
    coolicer
        26
    coolicer  
    OP
       2015-04-30 09:31:32 +08:00
    @jevonszmx
    @metrue

    mac下不起作用,怎么看
    jevonszmx
        27
    jevonszmx  
       2015-04-30 14:00:01 +08:00   ❤️ 1
    @coolicer

    给执行权限了没:chmod +x /usr/local/bin/service.sh
    coolicer
        28
    coolicer  
    OP
       2015-04-30 15:10:11 +08:00
    @jevonszmx 给了。mongodb搞不定,最后我用了plist的方式,全部可以了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5828 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 03:40 · PVG 11:40 · LAX 19:40 · JFK 22:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.