web-dev-qa-db-ja.com

ログイン時に20秒後にbashスクリプトを実行する方法は?

次のようなbashスクリプトを実行したい:

#!/bin/bash          
echo 'cpu limit bomi player at 40%'
cpulimit -v -e bomi -l 40  

ユーザーにログインしてからわずか20秒。それを手伝ってくれませんか? Googleを検索して、彼らが言ったことをしましたが、うまくいきませんでした。

出力を表示する新しいターミナルウィンドウでbashスクリプトを実行できる場合は、そのために何をする必要があるかを教えてください。

7
Mahdi

簡単な方法は、これらの行をシステムのrc.localに追加することです。

そのためには、rootまたはSudo権限が必要です。お気に入りのテキストエディタでファイルを編集できます。たとえば、vim

vim /etc/rc.local

(sleep 20
echo 'cpu limit bomi player at 40%'
cpulimit -v -e bomi -l 40) &

最初の行はコンピューターに20秒待つように指示し、他の2行はスクリプトからのもので、最後の&はコンピューターがサブシェルでそれを実行するように指示し、コンピューターが機能を待たないようにします終了し、ブートを続行します。

これらの行は、そのスクリプトの終了時にexit 0呼び出しの前の任意の場所に追加する必要があります。これにより、スクリプトが終了し、その後の行が無視されます。

10
Bruno Pereira

別の提案は、実行可能なbashスクリプトを作成することです。 onboot.shと呼び、ホームディレクトリに保存します。

〜/ onboot.sh

#!/bin/bash
sleep 20      
echo 'cpu limit bomi player at 40%'
cpulimit -v -e bomi -l 40  

次に、このコマンドを実行して実行可能にします

chmod +x ~/onboot.sh

次に、この行を〜/ .bashrcに追加します

~/onboot.sh &

新しいターミナルセッションを作成するたびに、~/.bashrcが実行され、~/onboot.shファイルが実行されます。

編集:これはその特定のユーザーに対してのみ実行されることを言及するのを忘れていました。システム上のすべてのユーザー向けではありません。

0
Rowan Hughes