this post was submitted on 25 Jun 2023
815 points (100.0% liked)

Technology

37742 readers
482 users here now

A nice place to discuss rumors, happenings, innovations, and challenges in the technology sphere. We also welcome discussions on the intersections of technology and society. If it’s technological news or discussion of technology, it probably belongs here.

Remember the overriding ethos on Beehaw: Be(e) Nice. Each user you encounter here is a person, and should be treated with kindness (even if they’re wrong, or use a Linux distro you don’t like). Personal attacks will not be tolerated.

Subcommunities on Beehaw:


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 2 years ago
MODERATORS
 

I wholeheartedly agree with this blog post. I believe someone on here yesterday was asking about config file locations and setting them manually. This is in the same vein. I can't tell you how many times a command line method for discovering the location of a config file would have saved me 30 minutes of googling.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 7 points 1 year ago (3 children)

(Windows) Resource Monitor, disk tab, tick the process, see what files it opens and closes.

Also the usual %programdata% and the two %appdata% find most things.

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago)

Do things stay in that list when they are not used (since they would be opened and closed in far less than a second)? If so that's pretty cool.

If not, you can use Process Monitor to check this. That's what I usually do.

[–] [email protected] 3 points 1 year ago (1 children)

Unless it's using the Registry for some config values.

[–] [email protected] 1 points 1 year ago (1 children)

True. That's harder to track down.

[–] [email protected] 1 points 1 year ago

Procmon if you're a masochist, or do a before and after snapshot. Here's one tool for the latter: https://www.nirsoft.net/utils/registry_changes_view.html

[–] [email protected] 3 points 1 year ago (1 children)

The *nix equivalent is the lsof command. This doesn't help you finding out in which hierarchy config files are parsed when the program accesses multiple ones, which is often the case.

[–] [email protected] 9 points 1 year ago (3 children)

You can use something like strace -eopen -f -o strace.out the_program to find all files that the program tried or succeeded to open. Then you can try to find the config file(s) in strace.out.

[–] [email protected] 3 points 1 year ago

There's also a nice version in perftools that can be given a PID. https://github.com/brendangregg/perf-tools/blob/master/opensnoop

[–] [email protected] 2 points 1 year ago

I was digging through the comments for exactly this, thanks!

[–] [email protected] 2 points 1 year ago (1 children)

You still don't know which location is preffered and how get they get merged. In my experience, digging into the source is the most straighforward. But my usual problem is more that the config option doesn't do at all what the documentation says it does.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (1 children)

Wouldn't the strace.out file be in chronological order?

[–] [email protected] 1 points 1 year ago (1 children)

Yes, though if two different files allow for the same config key - you're stuck opening both to check

[–] [email protected] 1 points 1 year ago (1 children)

And you still couldn't be sure, could be parsed the other way around for historic reasons.
Just reading the source code (if possible ofc) is imho easier than reading.

[–] [email protected] 2 points 1 year ago

True, though I had to use strace method on closed source binaries before (zoom)