カテゴリー「centos」

つい忘れがちなので、foregroundからbackgroundへジョブを移すメモです。

centos7で確認済みです。


まず、こんな処理があったとします。

$ cat ./hogehoge.sh 
#!/bin/sh
while true; do echo "hogehoge" >> ./fugafuga.txt; sleep 1; done

これをssh経由でforegroundで実行してしまったが、background実行にして、sshを切りたい場合、

(実行)
$ ./hogehoge.sh 

(中断)
^Z       ※ここでCtr+z
[1]+  Stopped                 ./hogehoge.sh

(確認)
$ jobs
[1]+  Stopped                 ./hogehoge.sh

(バックグラウンドに切り替え)
$ bg 1
[1]+ ./hogehoge.sh &

(TTYから切り離す)
$ disown -h %1

とすることで、background実行になり、sshを切ってもジョブは残り続けます。

予め時間がかかるときは、以下のようにnohup(debian系ならstart-stop-daemonでもよし)を使って実行しておきましょう。

(命令が1つの場合)
$ nohup ./hogehoge.sh 1> ./success.txt 2> ./error.txt &

(命令が連結する場合)
$ nohup sh -c 'while true; do echo "hogehoge" >> ./fugafuga.txt; sleep 1; done' 1> ./success.txt 2> ./error.txt &

以上

投稿日時:2021年02月24日 19:03   カテゴリー:centos, server   [コメントがあればどうぞ]

centos7でstart-stop-daemonが使いたいなと思い、

調べていると、epelレポジトリにdpkgというパッケージがあった。

https://apps.fedoraproject.org/packages/dpkg/

 

ってわけで、


# yum install dpkg --enablerepo=epel

で、start-stop-daemonコマンド入りのdpkgがインストール可能である。

ソースからビルドする必要あると思っていたのに。。

 

以上

投稿日時:2018年04月21日 23:37   カテゴリー:centos, fedora   [コメントがあればどうぞ]