
at
などを含むLinuxスケジューリングコマンドを学んでいます。このコマンドは、x分後に起動しようとします。これが私が持っているものです:cron
sleep
gedit
at
kedar@i5 ~ $ at now + 1 minute
at now + 1 minute
warning: commands will be executed using /bin/sh
at> ./s.sh
at> <EOT>
job 18 at Fri Aug 15 13:21:00 2014
コンテンツs.sh(-rwxr--r--):
#!/bin/sh
#set $DISPLAY=:0
echo "Created on" `date` >t.txt
gedit #(also tried /usr/bin/gedit and `gedit` and systen(/usr/bin/gedit))
1分後、予想されるコンテンツを含むt.txtが生成されます。しかし、gedit
まだリリースされていません。したがって、私のプログラム(firefox
、xcalc
などxfce4-terminal
)のどれもこの方法で始めることはできませんat
。
奇妙なことは、./s.sh
bashで実行するとうまくgedit
開くことです。
また、実行しようとしましたat
(ファイルで - 完全に正しい場合)。
kedar@i5 ~ $ at now + 1 minute -f ./s.sh
at
シェルスクリプトの使用方法に問題があるようです。at
シェルスクリプトなしで使用できませんか?ありがとうございます。
答え1
表示変数を設定する必要があります。
#!/bin/bash
export DISPLAY=":0"
gedit
それから
at now + 1 minute -f test.sh
私のために働くUbuntu 14.04.1 LTS