ftokioka
2024年5月1日 16時56分
コンテナ内のプログラムを下記のコード(C言語)を生成しました。
コンテナは、Debianです。
#include
void main()
{
for(;;) {
sleep(1);
}
}
gccで、実行モジュールを生成して、
HOST側から、下記のコマンドを実行しましたところ、下記が出力されます。
バッググランドで動作させます。pythonでは、動作しておりました。
podman exec -it test /a.out &
[3]+ Stopped (tty output) podman exec -it test /a.out
が出力されます。
バッググラウンドで動作させる方法は、どのように実施したら宜しいでしょうか?
後、podman exec にて実行するコマンドを相対パス指定して動作する方法はありませんでしょうか?
絶対パス指定でないと動作しないでしょうか?
宜しくお願い申し上げます。
コメント
ftokioka
回答ありがとうございます。
> 1. バックグラウンド実行の方法
> 現在お使いのコマンドは以下だと思います。
>
> podman exec -it test /a.out & >
> 少し回答がずれますが、-d オプションを追加することでコンテナをバックグラウンド実行することが可能です。
> 以下のように -d を追加して実行してみてください。
>
> podman exec -dit test /a.out >
> 上記で、期待している動作になるかご確認いただけますと幸いです。
こちらは動作しました。ありがとうございます。
> 2. 相対パスでの指定は可能か
>
> 相対パスでの実行は可能です。
> 以下のように pwd コマンドを渡すと、カレントディレクトリのパスが取得できます。
>
> podman exec -it test pwd >
> カレントディレクトリから、実行したいファイルへの相対パスで指定してみてください。
pwdでは、取得は可能ですが、
先に、カレントディレクトリ操作後、実行したいのですが、それは、可能でしょうか?
podman exec -it test cd /home
としますと、
Error: crun: executable file `cd` not found in $PATH: No such file or directory: OCI runtime attempted to
invoke a command that was not found
と表示されます。
ftokioka
> 回答ありがとうございます。
>
> > 1. バックグラウンド実行の方法
> > 現在お使いのコマンドは以下だと思います。
> >
> > podman exec -it test /a.out & > >
> > 少し回答がずれますが、-d オプションを追加することでコンテナをバックグラウンド実行することが可能です。
> > 以下のように -d を追加して実行してみてください。
> >
> > podman exec -dit test /a.out > >
> > 上記で、期待している動作になるかご確認いただけますと幸いです。
> こちらは動作しました。ありがとうございます。
>
> > 2. 相対パスでの指定は可能か
> >
> > 相対パスでの実行は可能です。
> > 以下のように pwd コマンドを渡すと、カレントディレクトリのパスが取得できます。
> >
> > podman exec -it test pwd > >
> > カレントディレクトリから、実行したいファイルへの相対パスで指定してみてください。
>
> pwdでは、取得は可能ですが、
> 先に、カレントディレクトリ操作後、実行したいのですが、それは、可能でしょうか?
>
> podman exec -it test cd /home
> としますと、
> Error: crun: executable file `cd` not found in $PATH: No such file or directory: OCI runtime attempted to
> invoke a command that was not found
> と表示されます。
>
at_reika.yamazaki
at_reika.yamazaki
2024年5月1日 18時35分
お世話になっております。
山崎です。
質問の内容についてですが以下の二点だと思います。
・ バックグラウンド実行の方法
・ 相対パスでの指定は可能か
順に回答します。
1. バックグラウンド実行の方法
現在お使いのコマンドは以下だと思います。
少し回答がずれますが、-d オプションを追加することでコンテナをバックグラウンド実行することが可能です。
以下のように -d を追加して実行してみてください。
上記で、期待している動作になるかご確認いただけますと幸いです。
2. 相対パスでの指定は可能か
相対パスでの実行は可能です。
以下のように pwd コマンドを渡すと、カレントディレクトリのパスが取得できます。
カレントディレクトリから、実行したいファイルへの相対パスで指定してみてください。
以上、どうぞよろしくお願いいたします。