[CRIU] [PATCH 2/5] crtools: chdir to images dir after processing all command line options
Pavel Emelyanov
xemul at parallels.com
Thu Nov 14 10:09:51 PST 2013
On 11/14/2013 11:59 PM, Ruslan Kuprieiev wrote:
> On 12.11.2013 23:20, Pavel Emelyanov wrote:
>> On 11/13/2013 01:42 AM, Ruslan Kuprieiev wrote:
>>
>> That's not natural. I'd expect that we chdir() to workdir ;)
>> This will be a) natural and b) save one service fd.
>
> Oh, so we could open logfiles/pidfiles/stats as is, without openat?
Yes, like this.
> But with service/server it will require absolute paths for
> pidfiles/logfiles, as we are going to use -D to point daemon where to
> chdir or aren't we?
I think that with -W option daemon may not require absolute paths for
logs and pidfiles and put them into -W dir.
> And maybe it would be better, to chdir to imgs dir, as we may use it in
> the future to recurrently go through the directory and, for example,
> restore set of processes, and write all logs into one file somewhere
> outside.
I think we'd better stop chdir()-ing to images dir. We should use image_open
and sfd-s to access them.
>>> Signed-off-by: Ruslan Kuprieiev <kupruser at gmail.com>
>>> ---
>>> crtools.c | 12 +++++++-----
>>> 1 file changed, 7 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/crtools.c b/crtools.c
>>> index 4a0017f..b9313b1 100644
>>> --- a/crtools.c
>>> +++ b/crtools.c
>>> @@ -78,6 +78,7 @@ int main(int argc, char *argv[])
>>> int ret = -1;
>>> int opt, idx;
>>> int log_level = 0;
>>> + char *imgs_dir = ".";
>>>
>>> BUILD_BUG_ON(PAGE_SIZE != PAGE_IMAGE_SIZE);
>>>
>>> @@ -163,11 +164,7 @@ int main(int argc, char *argv[])
>>> opts.restore_detach = true;
>>> break;
>>> case 'D':
>>> - if (chdir(optarg)) {
>>> - pr_perror("Can't change directory to %s",
>>> - optarg);
>>> - return -1;
>>> - }
>>> + imgs_dir = optarg;
>>> break;
>>> case 'W':
>>> break;
>>> @@ -283,6 +280,11 @@ int main(int argc, char *argv[])
>>> }
>>> }
>>>
>>> + if (chdir(imgs_dir)) {
>>> + pr_perror("Can't change directory to %s", optarg);
>>> + return -1;
>>> + }
>>> +
>>> log_set_loglevel(log_level);
>>>
>>> if (log_init(opts.output))
>>>
>>
>
> .
>
More information about the CRIU
mailing list