Сбой Crontab при переключении фона linux mint

Вы можете просто создавать новую оболочку для каждого xargs:

find. -name "file*" | xargs -n 1 sh -c 'echo "$1"; find. -samefile "$1" | wc -l' xargs-sh

Хотя использование xargsздесь — плохая идея, так как это приведет к поломке, если пути к файлам содержат пробелы или символы в кавычках.

Здесь использование wc -lтакже является ненадежным, поскольку оно ломается, если пути к файлам содержат символы новой строки.

Вы можете использовать стандартный синтаксис find -exec cmd {} +и избежать необходимости запускать один shдля каждого файла с помощью цикла:

find. -name "file*" -exec sh -c '
  for file do
    printf "%s\n" "$file"
    find.//. -samefile "$file" | grep -c //
  done' find-sh {} +
1
06.07.2020, 18:20
1 ответ

DBUS_SESSION_BUS_ADDRESS необходимо установить как переменную окружения. Его правильное значение можно установить с помощью следующего сценария, взятого из этого вопроса с вопросом Как изменить Gsettings через удаленную оболочку?

#!/bin/bash

# Remember to run this script using the command "source./filename.sh"

# Search these processes for the session variable 
# (they are run as the current user and have the DBUS session variable set)
compatiblePrograms=( nautilus kdeinit kded4 pulseaudio trackerd )

# Attempt to get a program pid
for index in ${compatiblePrograms[@]}; do
    PID=$(pidof -s ${index})
    if [[ "${PID}" != "" ]]; then
        break
    fi
done
if [[ "${PID}" == "" ]]; then
    echo "Could not detect active login session"
    return 1
fi

QUERY_ENVIRON="$(tr '\0' '\n' < /proc/${PID}/environ | grep "DBUS_SESSION_BUS_ADDRESS" | cut -d "=" -f 2-)"
if [[ "${QUERY_ENVIRON}" != "" ]]; then
    export DBUS_SESSION_BUS_ADDRESS="${QUERY_ENVIRON}"
    echo "Connected to session:"
    echo "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}"
else
    echo "Could not find dbus session ID in user environment."
    return 1
fi

return 0

Затем задание cron можно изменить на это:*/10 * * * * DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus /home/me/Pictures/wallpapers/switcher.sh >> /home/me/Logs/wallpaper.log 2>&1

0
18.03.2021, 23:21

Теги

Похожие вопросы