web-dev-qa-db-ja.com

ログインする前にスクリプトを実行する

終日、起動スクリプトの問題に直面しています。

私が探しているのは、boot/before loginで単一のスクリプトを実行する方法です。適切なサービスを実行します。 (すべてのユーザー向けの単一スクリプトはクールだろう-簡単なメンテナンス)

単純なスクリプト「/machineSetup.sh」

#LC_NUMERIC - Specifies the decimal delimiter
export LC_NUMERIC="en_US.UTF-8"
#-------------------------------------------------------------------
#add custom aliases path 
export PATH=$PATH:/home/user/aliases
#-------------------------------------------------------------------
#run backburnerServer (tool to control remote computing) run process
/usr/discreet/backburner/backburnerServer &
#-------------------------------------------------------------------
#run x11vnc run process 
/usr/bin/x11vnc &

Ubuntu14.04にいます。私はすでに/etc/rc.localでテストを行いましたが、まったく運がありません。 /etc/profile.d/machineSetup.shを試しましたが、ログイン後にのみ機能します。

ヒントがあれば教えてください。単一のファイル内に構成を保存することはまったく可能ですか?提案を事前に感謝します!

2
bolek

任意のスクリプトを開始できます

/etc/rc.local

Upstart .confファイルを作成する方が良いでしょう。これらはに保存されます

/etc/init/*.conf

例として、ファイル/etc/init/hostname.confの内容は次のとおりです。

#
# This task is run on startup to set the system hostname from     /etc/hostname,
# falling back to "localhost" if that file is not readable or is empty     and
# no hostname has yet been set.

description     "set system hostname"

start on startup

task
exec hostname -b -F /etc/hostname

別の解決策はcrontab機能@rebootを使用することです。詳細については crontab here

3
cmks

宣言環境変数は通常〜/ .profileで実行されるため、これらの行をそのファイルの最後に追加するだけです。これがあなたの質問に答えるかどうかはわかりませんが、スクリプトでログイン時を実行しても問題ない場合は、スクリプトをスタートアップアプリケーションに追加してみてください。ダッシュを開いて、スタートアップアプリケーションと入力し、追加をクリックします。好きな名前を入力し、Commandフィールドでスクリプトを参照します。次に、追加をクリックします。

0
Rahul Mukherji

Rc.localから呼び出す場合、実行可能なシェルスクリプトが必要です。

Sudo -i

vi /machineSetup.sh

コンテンツ:

#!/bin/bash
#LC_NUMERIC - Specifies the decimal delimiter
export LC_NUMERIC="en_US.UTF-8"
#-------------------------------------------------------------------
#add custom aliases path 
export PATH=$PATH:/home/user/aliases
#-------------------------------------------------------------------
#run backburnerServer (tool to control remote computing) run process
/usr/discreet/backburner/backburnerServer &
#-------------------------------------------------------------------
#run x11vnc run process 
/usr/bin/x11vnc &

実行可能にする:

chmod 0755 vi /machineSetup.sh
0
cmks

なぜ以前このことを考えなかったのか分かりません。必要なことは、テキストエディタで/etc/rc.localを開き、ファイル内のexit 0行の前にスクリプトの内容を貼り付けるだけです。起動時にラップトップをBluetoothで自動キルするので、これが実際に機能することはわかっています。

0
Rahul Mukherji