ログインしていないときにシステムで実行するタスクリストにシェルコマンドを追加する簡単な方法はありますか?
たとえば、
私のシステムにSSHで接続し、後で電子書籍を読むことにしましたが、フォーマットが間違っています。 Calibreを使用して変換しますが、CPUで長い時間がかかります。それでも急がないので、SSHセッションを終了するとすぐに(シェルコマンドを実行するだけで)、Calibre変換ジョブを開始するようにシステムに指示したいと思います。その後、SSH経由で再度ログインすると、変換された本が私を待っています。
ベストアンサー1
単純だがおそらく不便な方法は、次のようにコマンドを実行することです。北面ログアウトする前に端末から切り離してください。
nohup mycommand &
logout
nohup.out
このコマンドのすべての出力は、現在のディレクトリのファイルに送信されます。
通常、内部でコマンドを実行する方が便利です。画面またはマルチプレクサ。どちらのプログラムも、現在の端末からセッションを切断し、後で再接続できる端末を端末に提供します。
screen
# inside the screen session
sleep 60; mycommand
# press Ctrl+A D to detach from the session
# now back in the original shell
logout
それから後で:
screen -rd
# inside the screen session, you can see how your command is doing
…
exit
別の可能性は、後でタスクをスケジュールすることです。これat
コマンドを使用すると、特定の時間にジョブをスケジュールできます(定期的にジョブをスケジュールするcron用のワンタイムウィジェットです)。コマンドが出力を生成すると、ユーザーにメールで送信されます(ローカルメールを実行すると仮定)。
echo 'mycommand' | at 23:05