V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gzwawj
V2EX  ›  问与答

在 ubuntu 系统上如何添加自己的脚本,让脚本开机自启

  •  
  •   gzwawj · 2017-06-22 10:06:51 +08:00 · 7008 次点击
    这是一个创建于 2703 天前的主题,其中的信息可能已经有所发展或是发生改变。
    21 条回复    2017-06-23 06:55:21 +08:00
    l9rw
        1
    l9rw  
       2017-06-22 10:12:14 +08:00   ❤️ 4
    Baymaxbowen
        2
    Baymaxbowen  
       2017-06-22 10:37:26 +08:00
    @l9rw 求网址
    sfyumi
        3
    sfyumi  
       2017-06-22 11:04:31 +08:00
    @l9rw 这个网址很好啊, 哈哈哈. 已收藏
    0asis
        4
    0asis  
       2017-06-22 11:06:35 +08:00 via iPhone
    有个叫 init.d 的文件夹,具体百度
    ETiV
        5
    ETiV  
       2017-06-22 11:07:53 +08:00 via iPhone
    crontab 加一行

    @reboot CMD
    gzwawj
        6
    gzwawj  
    OP
       2017-06-22 11:31:56 +08:00
    @0asis 怎么让“ ffmpeg -i rtsp://admin:******@192.168.16.233/h264/ch1/main/av_stream -vcodec copy -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 -f flv rtmp://192.168.16.112:1935/live/hall_2 >/dev/null 2>&1 &
    ”这条命令加到开机自动运行
    0asis
        7
    0asis  
       2017-06-22 11:33:58 +08:00 via iPhone
    @gzwawj 应该是写一个 shell 然后把 shell 文件加到 init.d
    knightdf
        8
    knightdf  
       2017-06-22 11:37:42 +08:00
    加到 /etc/rc.local
    gzwawj
        9
    gzwawj  
    OP
       2017-06-22 11:38:30 +08:00
    @0asis 其他的命令都可以使用这种方法,但是 ffmpeg 这个应用使用这种方法不管用
    thecon
        10
    thecon  
       2017-06-22 11:41:59 +08:00
    早期版本很简单 , 把脚本放 /etc/rc.local 里就行了

    16.04 以后就比较麻烦了, 得自己添加个 systemctl 服务
    gzwawj
        11
    gzwawj  
    OP
       2017-06-22 11:46:38 +08:00
    @thecon 有没有参考的文章或者网站
    thecon
        12
    thecon  
       2017-06-22 11:50:49 +08:00   ❤️ 3
    @gzwawj

    vi /etc/systemd/system/尼想要的服务名.service
    加入如下内容:
    [Unit]
    Description=尼的脚本路径 Compatibility
    ConditionPathExists=尼的脚本路径

    [Service]
    Type=forking
    ExecStart=尼的脚本路径 start
    TimeoutSec=0
    StandardOutput=tty
    RemainAfterExit=yes
    SysVStartPriority=99

    [Install]
    WantedBy=multi-user.target

    脚本要有可执行属性, 路径要绝对路径
    然后取保脚本正确执行后最后的代码是:
    exit 0

    激活服务:
    sudo systemctl enable 尼想要的服务名
    启动服务器和检查状态:
    sudo systemctl start 尼想要的服务名.service
    sudo systemctl status 尼想要的服务名.service
    gzwawj
        13
    gzwawj  
    OP
       2017-06-22 12:00:39 +08:00
    @thecon 那开机是不是自动启动啊
    thecon
        14
    thecon  
       2017-06-22 14:35:46 +08:00
    @gzwawj

    sudo systemctl enable 尼想要的服务名

    这步完了就是开机自动启动了
    lxml
        15
    lxml  
       2017-06-22 16:43:06 +08:00
    @thecon #14 感谢,我搜教程老出来说添加 rc.local,我心说找了半天我 17.04 文件夹都是 rc0.local,果然又又又又被改版坑了。
    ahu
        16
    ahu  
       2017-06-22 21:59:09 +08:00
    一楼这个简直了,,,,😂
    ahu
        17
    ahu  
       2017-06-22 22:02:41 +08:00
    zjp
        18
    zjp  
       2017-06-22 23:16:20 +08:00 via Android
    阮一峰的博客有 systemd 的介绍。顺带吐个槽:doge: 就在刚刚,systemctl enable xxx 一直不成功,排查半小时发现脚本打漏仨字母…
    mingyun
        19
    mingyun  
       2017-06-22 23:35:10 +08:00
    @ahu 这个有意思了
    b1eberg0n
        20
    b1eberg0n  
       2017-06-23 00:52:41 +08:00 via iPhone
    supervisor
    loading
        21
    loading  
       2017-06-23 06:55:21 +08:00 via Android
    ubuntu wiki 挂了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5486 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 06:56 · PVG 14:56 · LAX 22:56 · JFK 01:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.