2017-11-05 4 views
0

Ubuntu Xenial DesktopのみでプロキシとDevの設定をインストールするために使用されるインストールスクリプトを作成しています。リブート後に端末を起動してsystemdからスクリプトを実行

2つのスクリプトがすべてインタラクティブで、ユーザーからの入力が必要です。インストール後に各スクリプトを再起動する必要があり、自動的に別のコンソールを開き、次のスクリプトと対話する必要があります。

script_1.sh > reboot > script_2.sh 
     V       V    
    usr input     usr input    
    required     required     

私はすべてのスクリプトが完了し、彼らは私の挑戦は、再起動後は、コンソールを開いて、次を開始しますので、システムDを設定しようとしている必要があるとして働いてきた:ここ

は、フローの図です。スクリプト。

私はこれには新しいですが、rc.localを使って何かを構築した後、この種のインストールに使用するのは良い習慣ではないと言う投稿の大きさを読んで、アップスタートを使い始めました。私はSystemdを使用する必要があります。

明らかに、私はこれらのスクリプトを構築し、それらをコピーして処理中に削除してしまいました。ここでは、これを行う方法についてのヘルプは、私が2日失ってしまったのですばらしいでしょう。

以前atempt:あなたが提供することができます任意の助けを事前に

description  "install script" 

start on local-filesystems or runlevel [2345] 
stop on runlevel [!2345] 

pre-start script 
    # prepare environment 
    touch /var/logs/DID.log 
    exec echo DID installation started `date` >> /var/log/DID.log 
end script 

script 
    # do some stuff 
    exec ~/Documents/script_2.sh 
    console output 
end script 

post-stop script 
    # clean up 
    exec echo DID stage 2 installation finished `date` >> /var/log/DID.log 
end script 

乾杯。

+0

あなたは既にリブートしていますし、スクリプトを再起動する必要がありますか? – sjsam

+0

'はすべてインタラクティブであり、ユーザーからの入力が必要です。「これは書類作成ではないと思います。代わりに、設定ファイルを使用して、これらの起動スクリプトを非インタラクティブにする必要があります。 – sjsam

+0

最初のスクリプトは内部プロキシとドメイン資格情報の設定を構成していて、再生した後にバックアップができることを確認する最も簡単な方法を見つけましたシステムを再起動することです。 最後の2つのスクリプトを組み合わせて、2回目の再起動の必要性を取り除くことができました。何よりも自信が再起動されました。 – Xander

答えて

0

https://wiki.archlinux.org/index.php/Systemd/User)あなたを助けるかもしれないユーザsystemdスクリプトを作成することができます。

ここでは、systemdのターミナルでスクリプトを起動する方法の簡単な例を示します(現時点ではUbuntu上ではないので、パスではうまくいかないかもしれません)。これはおそらく/ etc/systemd /ユーザー/:これはトリックは、あなたは私が持っているスクリプトを使用して(フルグラフィカル環境をセットアップしたら起動するためにそれを取得しますsystemctl --user start servicename.service

で私のシステム(アーチ)に私のために動作します

[Unit] 
Description=Start Script in terminal 

[Service] 
ExecStart=/usr/bin/xterm -hold -e /path/to/your/script.sh 

[Install] 
WantedBy=graphical.target 

あなたがsystemctl --user enable servicename.serviceを実行した場合に与えられます。私はUbuntuにはないので、あなたのウィンドウマネージャの前にほぼ確実に起動します。これは(最後の応答)を助けるかもしれません:https://superuser.com/questions/759759/writing-a-service-that-depends-on-xorg。彼らはログイン後にグラフィカルプログラムを実行するためのシステムサービスを持っているUbuntuユーザーです。

サービスの開始時刻を決定できる場合は、サービスファイルを作成して最初のスクリプトの最後に作成/有効にし、2番目のスクリプトの最後に無効にするか削除します。

+0

私は今どこが間違っていたか見ることができますファンタスティック、歓声!! :) – Xander

関連する問題