web-dev-qa-db-ja.com

シェルを使用してrc.localに行を追加する方法

私はUbuntu12.04に取り組んでおり、環境自動ビルドシェルを作成しています。シェルで、rc.localの何かを変更する必要があります。

これは私のrc.localです。

#!/bin/sh -e
#......

exit 0

私はそれを次のように変更したいと思います:

#!/bin/sh -e
#......

Nohup sh /bocommjava/socket.sh &

exit 0

今、私はそれを変更するためにnanoを使用していますが、コマンド rc.localへの行を挿入できるものはありますか?

15
missingcat92

使用 Sed

テスト用

sed -e '$i \Nohup sh /bocommjava/socket.sh &\n' rc.local

本当に変更する

sed -i -e '$i \Nohup sh /bocommjava/socket.sh &\n' rc.local
29
sigmalha

最も簡単なのは、スクリプト言語(例:python、Perlなど)を使用することです。

#!/usr/bin/env python
import os

with open('/etc/rc.local') as fin:
    with open('/etc/rc.local.TMP') as fout:
        while line in fin:
            if line == 'exit 0':
                fout.write('Nohup sh /bocommjava/socket.sh &\n')
            fout.write(line)

# save original version (just in case)
os.rename('/etc/rc.local', '/etc/rc.local.jic')

os.rename('/etc/rc.loca.TMP', '/etc/rc.local')
1
user590028