[SOLVED] A custom systemd service doesn't execute a specific command
I have made a custom service which should set screen brightness.
file: /etc/systemd/system/backlight100.service
[Unit]
Description=Set screen brightness
[Service]
Type=oneshot
ExecStart=/bin/echo 100 > /sys/class/backlight/intel_backlight/brightness
ExecStart=/usr/bin/beep
[Install]
WantedBy=multi-user.target
(beep is there so I can know for sure that the script runs)
The problem is, when I run "# systemctl start backlight100.service" I can hear the beep but it doesn't change the brightness. When I run "/bin/echo 100 > /sys/class/backlight/intel_backlight/brightness" in terminal it does change the brightness... but not when I start or restart the service.
Here's the output of systemctl status backlight100.service after starting it
backlight100.service - Set screen brightness
Loaded: loaded (/etc/systemd/system/backlight100.service; enabled)
Active: inactive (dead) since Fri 2013-04-05 20:17:32 AMT; 3min 19s ago
Process: 27698 ExecStart=/usr/bin/beep (code=exited, status=0/SUCCESS)
Process: 27696 ExecStart=/bin/echo 100 > /sys/class/backlight/intel_backlight/brightness (code=exited, status=0/SUCCESS)
Apr 05 20:17:32 work systemd[1]: Starting Set screen brightness...
Apr 05 20:17:32 work echo[27696]: 100 > /sys/class/backlight/intel_back...ss
Apr 05 20:17:32 work systemd[1]: Started Set screen brightness.
What am I doing wrong here? Any help appreciated.
Last edited by axper (2013-04-05 18:35:24)
msthev wrote:$ man systemd.service
ExecStart=
Note that this setting does not directly support shell command
lines. If shell command lines are to be used they need to be passed
explicitly to a shell implementation of some kind. Example:
ExecStart=/bin/sh -c 'dmesg | tac'
Thanks, changing ExecStart line to
ExecStart=/bin/bash -c '/bin/echo 100 > /sys/class/backlight/intel_backlight/brightness'
solved the issue. Though I can recall seeing ExecStart lines with direct shell commands.
Raynman wrote:
You should look at tmpfiles.d.
https://wiki.archlinux.org/index.php/Sy … rary_files
I'll do that, thanks!
Similar Messages
-
[SOLVED]systemd service doesn't play sound
I have a bash script which play via 'sox' a sound file. Something like this:
play someFile -t alsa -q
I set up a 'systemd --user' timer which calls this script at certain time. The timer is successfully called and the corresponding service is also successfully called and exits with SUCCESS code. The problem is that sound is not heared.
When the service is called manually from the bash with
systemctl start mySoundTimer.service
the sound is played OK.
The service file is as follows:
[Unit]
Description= A sound timer.
[Service]
Type=simple
ExecStart=/usr/bin/bash /path/to/my/script.sh
I tried several other combinations in ExecStart:
ExecStart=/usr/bin/bash -c /path/to/my/script.sh
ExecStart=/usr/bin/bash "-c /path/to/my/script.sh"
ExecStart=/usr/bin/bash -c "/path/to/my/script.sh"
No one is working. What can be the cause of the problem?
EDIT:
The cause of this is a different timing behaviour of systemd timer as compared to cron which I used before. (It seemingly takes into account the time of the last run and does not run again if it is called in less than the interval between runs specified in the timer file. And I tested the timer by setting the system date to several seconds before the timer's planned times.)
Last edited by nbd (2014-08-05 20:23:39)msthev wrote:$ man systemd.service
ExecStart=
Note that this setting does not directly support shell command
lines. If shell command lines are to be used they need to be passed
explicitly to a shell implementation of some kind. Example:
ExecStart=/bin/sh -c 'dmesg | tac'
Thanks, changing ExecStart line to
ExecStart=/bin/bash -c '/bin/echo 100 > /sys/class/backlight/intel_backlight/brightness'
solved the issue. Though I can recall seeing ExecStart lines with direct shell commands.
Raynman wrote:
You should look at tmpfiles.d.
https://wiki.archlinux.org/index.php/Sy … rary_files
I'll do that, thanks! -
[solved] emacs daemon systemd unit doesn't start
I found instructions on EmacsWiki for a systemd service file for running the emacs daemon at startup. It works just fine on my desktop, but for some reason it doesn't work on my laptop. Here's the service file (/etc/systemd/system/[email protected]):
[Unit]
Description=Emacs: the extensible, self-documenting text editor
[Service]
Type=forking
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval "(progn (setq kill-emacs-hook 'nil) (kill-emacs))"
Restart=always
User=%1
[Install]
WantedBy=multi-user.target
When I run "systemctl start emacs@<username>", it fails:
$ sudo systemctl status emacs@<username>.service
emacs@<username>.service - Emacs: the extensible, self-documenting text editor
Loaded: loaded (/etc/system/[email protected]; enabled)
Active: failed (Result: start-limit) since Tue, 2013-01-01 09:19:09 AST; 4min 25s ago
Process: 5621 ExecStart=/user/bin/emacs --daemon (code=exited, status=217/USER)
CGroup: name=systemd:/system/[email protected]/<username>
Any ideas why the exact same service file might start on one computer and fail on another? If I just run "emacs --daemon" manually (or in ~/.xinitrc) it starts just fine.
Thanks.
Last edited by ibrunton (2013-03-06 21:05:17)injyuw wrote:
My output:
<username>.service - Emacs: the extensible, self-documenting text editor
Loaded: loaded (/etc/systemd/system/[email protected]; enabled)
Active: active (running) since Tue, 2013-01-01 14:07:07 EST; 7min ago
Process: 4822 ExecStart=/usr/bin/emacs --daemon (code=exited, status=0/SUCCESS)
Main PID: 4823 (emacs)
CGroup: name=systemd:/system/[email protected]/<username>
|-4823 /usr/bin/emacs --daemon
`-4833 /usr/bin/aspell -a -m -B --encoding=utf-8 --sug-mode=ultra
Have you tried running it with the default .emacs.d & init.el?
Same result: failed, status=217/USER. -
Run custom systemd service before NetworkManager
Hi, I am trying to write a systemd service that runs and completes before NetworkManager.service starts.
I tried this:
[Unit]
Description=Custom service test
Before=NetworkManager.service
[Service]
Type=oneshot
ExecStart=/usr/bin/echo Custom service test 1
ExecStart=/usr/bin/sleep 5
ExecStart=/usr/bin/echo Custom service test 2
[Install]
WantedBy=network.target
While the custom service does start, I got this rather strange output:
Jan 22 00:12:46 localhost echo[1166]: Custom service test 1
Jan 22 00:12:48 localhost kernel: NVRM: GPU at 0000:02:00: GPU-(snip)
... some unrelated messages (acpid, kdm, etc) ...
Jan 22 00:12:49 localhost systemd-logind[1170]: Linked /tmp/.X11-unix/X0 to /run/user/1000/X11-display.
Jan 22 00:13:13 localhost echo[1254]: Custom service test 2
Jan 22 00:12:50 localhost systemd[1]: Started Custom service test.
Jan 22 00:12:50 localhost systemd[1]: Starting Network Manager...
As you can see, while everything appears in the expected order in the log, the timestamps look very wrong. The "Custom service test 2" says "00:13:13", yet it is in the middle of "00:12:49" and "00:12:50". What gives?
Also, notice that the first echo was at 00:12:46, but NetworkManager started at 00:12:50, which is only 4 seconds later. The "sleep" in the custom services should have made it start at 00:12:51 at the earliest. I don't understand why things are not being respected.
The output I'd expect to see is something like this:
Jan 22 00:12:46 localhost echo[1166]: Custom service test 1
Jan 22 00:12:51 localhost echo[1254]: Custom service test 2
Jan 22 00:12:51 localhost systemd[1]: Started Custom service test.
Jan 22 00:12:51 localhost systemd[1]: Starting Network Manager...
I have also made sure that it shows up in NetworkManager.service's After list:
$ systemctl show -p After NetworkManager.service
After=mycustomservice.service syslog.target systemd-journald.socket dbus.socket basic.targetfalconindy wrote:Sooooo this begs the question: what are you really trying to do?
I'm trying to write a script that changes the interface's MAC address before NetworkManager gets a chance to take over the network interface. I'm aware that there's a page about exactly that on the wiki. I started with the systemd service from the bottom of the page, which says "Before=dhcpcd@%i.service". I changed that line to use "NetworkManager.service", and I changed the ExecStart line to "/usr/bin/macchanger -A myinterface" in order to get a random MAC address, instead of setting a fixed one like the example shows. Then I saw that macchanger's output was being mixed with NetworkManager's output in the journal, so I decided to try and write a custom service just for testing, making it start before NetworkManager, in order to see if it really was systemd's fault or if it was something macchanger-specific. Then I noticed the strange behavior described in the OP, didn't really know what to do about it, so I posted this topic. That's the story so far...
Last edited by WindPower (2013-01-23 00:13:22) -
[SOLVED] Help with systemd .service script
Hello,
I have been using ArchLinux (ARM version) on some “plug computers” for over a year and love it. Recently I forced myself to move to systemd by upgrading all my computers from scratch. I migrated all my applications and learned new ways of doing things but am having trouble with one last migration. I run a c++ communication program that monitors a TCP port for traffic. In the past I started this program (daemon) from an entry in rc.conf. I have read all I can about systemd’s new approach to starting daemons (https://wiki.archlinux.org/index.php/Systemd and https://wiki.archlinux.org/index.php/Systemd/Services)
So far I created what I thought is the correct systemd .service file listed below.
[Unit]
Description=EQBCS
After=network.target
[Service]
Type=simple
ExecStart=/home/public/EQBCS/eqbcs -p 12947 -d &> /dev/null
[Install]
WantedBy=multi-user.target
I put this file in /usr/lib/systemd/system/eqbcs.service. I then ran the following commands in the following order:
systemctl daemon-reload
systemctl enable eqbcs.service (created a link in /etc/systemd/system/multi-user.target.wants)
systemctl start eqbcs.service
Here is output from systemctl (status)
eqbcs.service loaded failed failed EQBCS
I thought this would start the service but no luck. I also thought maybe a reboot would work but no luck. I verified I can start the daemon manually if I run /home/public/EQBCS/eqbcs -p 12947 -d &> /dev/null from the command line.
I think I am close, but after several hours of looking at examples of .service files and other posts, I am at a loss. I am not one of those types who posts a question without taking the time to read the wealth of information on these boards, but I am truly out of ideas and can’t figure out what to do next. I sincerely could use some help/advice.
Last edited by calzon65 (2013-06-01 21:18:20)Thank you for the suggestions, I believe I am getting closer to success. When I run systemctl start eqbcs.servcie it starts the service but the only way I can get out of systemctl is to ^c out.
Here is my current .service file:
[Unit]
Description=EQBCS
After=network.target
[Service]
ExecStart=/home/public/EQBCS/eqbcs -p 12947
Type=forking
[Install]
WantedBy=multi-user.target
Output from systemctl status eqbcs:
eqbcs.service - EQBCS
Loaded: loaded (/etc/systemd/system/eqbcs.service; enabled)
Active: failed (Result: timeout) since Sat 2013-06-01 12:48:43 PDT; 2min 11s ago
Process: 427 ExecStart=/home/public/EQBCS/eqbcs -p 12947 (code=killed, signal=TERM)
Main PID: 396 (code=killed, signal=KILL)
CGroup: name=systemd:/system/eqbcs.service
Jun 01 12:47:13 alarm systemd[1]: Starting EQBCS...
Jun 01 12:47:13 alarm eqbcs[427]: WARNING: Running as root NOT recommended.
Jun 01 12:47:13 alarm eqbcs[427]: EQ Box Chat Server 10.12.18
Jun 01 12:47:13 alarm eqbcs[427]: Waiting for connections on port: 12947...
Jun 01 12:48:43 alarm systemd[1]: eqbcs.service operation timed out. Terminating.
Jun 01 12:48:43 alarm systemd[1]: Failed to start EQBCS.
Jun 01 12:48:43 alarm systemd[1]: Unit eqbcs.service entered failed state.
Are there any other suggestions for settings in my .service file? -
HiQ doesn't execute scripts and command line commands
I am running HiQ pro 4.5 on Windows 2000 SP 2. Whenever I enter a command line command, e.g. "1+1", HiQ reports "no error reported" and doesn't execute the command. When I enter the same command again, HiQ tells me that a semicolon is missing.
When I try to execute a script, HiQ reports "Fatal Script error on line -1".
Anybody knows this behaviour and how to get HiQ running normally?I do have the same problem.
-
[Solved] custom systemd service error: Error spawning dbus-launch
Hello!
I wroted a shell script to change gnome background
gsettings set org.gnome.desktop.background picture-uri "/tmp/wallpaper.jpg"
After that i wrote a systemd wall.service file to launch it
[Unit]
Description=Change wallpaper
After=gdm.service
[Service]
Type=oneshot
ExecStart=test.sh
[Install]
WantedBy=graphical.target
When i try systemctl start wall.service, nothing happens and systemctl status wall.service gives me
dconf-WARNING **: failed to commit changes to dconf: Error spawning command line 'dbus-launch --autolaunch=74d66c08eacb4e12a2219f3fe74c245b --binary-syntax --close-stderr': Child process exited with code 1
Where the problem hides?
Last edited by anptr (2014-06-12 18:08:17)tomk wrote:Not a gnome user myself, but if I wanted something to change the wallpaper in my Openbox setup I wouldn't involve systemd at all. I would have thought gnome would have some utility for this built-in, but if not use nitrogen, feh, or other such tools.
This.
Really, you are just trying to make things overly complex. But I was just trying to tell you how to achieve your goal along the path you were taking. I too wouldn't involve systemd for such a task. The advantages that systemd provides just aren't necessary for such a process.
Edit: Besides that, I think you would have to specify the $DISPLAY as well somewhere in that setup. Either in the service file or the script you wrote.
Last edited by WonderWoofy (2014-06-08 15:49:01) -
[ Solved (?) ] CUPS error - service doesn't start
I've posted this here, because it is a print server problem.
I've installed cups as usual on a machine (Yes, as in the wiki).
The packages installed were: cups gsfonts ghostscript and hplip (for a HP printer ).
If I do /etc/rc.d/cupsd start ( or anything else ) to launch the cupsd service,
it tells me that cupsd has failed to start ( child exited with status 4 ).
Nothing in the logs.
Somebody has an idea, what could this mean?
Last edited by scar (2012-03-23 08:08:50)Well, I've checked a working cups install, and when I set LogLevel in cupsd.conf to debug, I get this ( normal ) messages:
I [09/Mar/2012:22:18:04 +0100] Full reload complete.
D [09/Mar/2012:22:18:04 +0100] cupsdCleanFiles(path="/var/spool/cups/tmp", pattern="(null)")
I [09/Mar/2012:22:18:04 +0100] Cleaning out old files in "/var/spool/cups/tmp"...
D [09/Mar/2012:22:18:04 +0100] cupsdCleanFiles(path="/var/cache/cups", pattern="*.ipp")
I [09/Mar/2012:22:18:04 +0100] Cleaning out old files in "/var/cache/cups"...
( this far I get them on the "failing" machine too)
but the below lines appear only on a working install, not on the machine that fails to start:
I [09/Mar/2012:22:18:04 +0100] Listening to 0.0.0.0:631 on fd 8...
I [09/Mar/2012:22:18:04 +0100] Listening to [v1.::]:631 on fd 9...
I [09/Mar/2012:22:18:04 +0100] Listening to /var/run/cups/cups.sock:631 on fd 10... -
How to tell a program to execute a specific command?
HI,
I wanted to figure out a way to start up a specific program (already created in an unknown language), I don't have its source code because it is commercially available. But I would love to find a way to use Java to tell it to execute certain commands (using key strokes, like f11). It is camera capturing software, and I would like it to capture images at certain point in my java code. Is there a way to do this? I already know how to start it up using Runtime.getRuntime().exec(ProgramLocation).
Thanks.yea i remember that last time in my last thread, but I seemed to encounter a problem as it gave me only so much functionality. I really need this java program to be in sync with this external program, so is there any classes that could mimic autoIT such as pressing a button while another process(program) is open etc...or are there open source versions similar to autoIT in dll form and possibly I can execute those commands in that manner?
-
How to execute system specific command from Java ?
I know it was done with System(String command); in C/C++.
Or is it possible at all ?Runtime.getRuntime().exec(...)And, read this:
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html -
Getting sasc-ng to work properly with systemd service files [SOLVED]
This thread is intended for getting the following AUR packages to work with each other with systemd service scripts:
https://aur.archlinux.org/packages/open-sasc-ng-dkms/
https://aur.archlinux.org/packages/open-sasc-ng/
https://aur.archlinux.org/packages/oscam-svn/ (this is a related package as it must properly execute prior to sasc-ng)
So my server is now on a fresh Arch install with systemd. All is well (& very fast) except I cannot get sasc-ng to function with systemd service init files. Prior to systemd the system worked fine with the rc initscripts & was very stable with the following setup:
rc.local
/etc/rc.d/oscam start
sleep 15
/etc/rc.d/sasc-ng start
sleep 4
/etc/rc.d/mythbackend start
/etc/conf.d/sasc-ng.conf
SASCNG_ARGS="-j 0:3 -j 1:4 -j 2:5" -b 16M --sid-allpid --sid-nocache --cam-budget"
DVBLOOPBACK_ARGS="num_adapters=3"
LOGDIR="/home/mythtv/logs/"
CAMDIR="/etc/camdir"
/etc/camdir/cardclient.conf
camd35:localhost:15050:1/0000/0000:mythtv:mythtv
I'll leave out the oscam stuff as that loads fine and doesn't appear to be a part of the problem
I've tried this with the systemd service file that comes with the open-sasc-ng-dkms package and when it was not sucessful I tried a bunch of variants including using "Type=simple" ect. "Type=Forked" seems to be only option that actually tries to start the processes. I also "hardcoded" the service files for the 2 sasc-ng components to find a few issues with the EnvironmentFile variables. The log variable has been removed for now as this seems to cause a fatal error but the rest of the variables load fine now. I also tested spliting up the DVB loopback module from the sasc-ng binary but this also gives similar results as the following script stands now. Running them manually with systemctl start commands doesn't make a difference but that is not surprising. The service file I'm fiddling with now which I feel has the best potential become working is:
sasc-ng.service
[Unit]
Description=Sasc-ng
After=oscam.service
[Service]
Type=forking
EnvironmentFile=/etc/conf.d/sasc-ng
ExecStartPre=/sbin/modprobe dvbloopback $DVBLOOPBACK_ARGS
TimeoutSec=2
ExecStart=/usr/sbin/sasc-ng -D $SASCNG_ARGS --cam-dir=$CAMDIR
TimeoutSec=4
[Install]
WantedBy=multi-user.target
Mythbackend always runs fine (even without DTV via sasc-ng) with the following mythbackend.service:
[Unit]
Description=MythTV_backend
After=sasc-ng.service
[Service]
Type=simple
Environment=MYTHCONFDIR=/etc/conf.d/mythbackend
Environment=HOME=/usr/share/mythtv
User=mythtv
ExecStart=/usr/bin/mythbackend --logpath /var/log/mythtv
[Install]
WantedBy=multi-user.target
oscam.service taken mostly from AUR package also seems fine. I added the TimeoutSec=15 to give time for oscam to load the SC and client protocol before moving on or else sasc-ng fails
Unit]
Description=An Open Source Conditional Access Module software
After=network.target
[Service]
Type=forking
EnvironmentFile=/etc/conf.d/oscam
ExecStart=/usr/bin/oscam $OSCAM_ARGS
TimeoutSec=15
[Install]
WantedBy=multi-user.target
Below is the output of the systemctl status commands. Despite the noise in the sasc-ng binary status, it is the loopback module that is " inactive (dead)" and there are no virtual DVB devices being created:
[mythtv@server ~]$ sudo systemctl status oscam.service
oscam.service - An Open Source Conditional Access Module software
Loaded: loaded (/usr/lib/systemd/system/oscam.service; enabled)
Active: active (running) since Tue, 2012-11-27 21:10:17 CET; 1min 7s ago
Process: 338 ExecStart=/usr/bin/oscam $OSCAM_ARGS (code=exited, status=0/SUCCESS)
Main PID: 377 (oscam)
CGroup: name=systemd:/system/oscam.service
├ 377 /usr/bin/oscam -b -c /etc/oscam
└ 378 /usr/bin/oscam -b -c /etc/oscam
Nov 27 21:10:17 server systemd[1]: Started An Open Source Conditional Acces...e.
[mythtv@server ~]$ sudo systemctl status loopback.service
loopback.service - Sasc-ng DVB Loopback Module
Loaded: loaded (/etc/systemd/system/loopback.service; enabled)
Active: inactive (dead) since Tue, 2012-11-27 21:10:28 CET; 1min 27s ago
Process: 907 ExecStart=/sbin/modprobe dvbloopback num_adapters=3 (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/loopback.service
Nov 27 21:10:28 server systemd[1]: Started Sasc-ng DVB Loopback Module.
[mythtv@server ~]$ sudo systemctl status sasc-ng.service
sasc-ng.service - Sasc-ng
Loaded: loaded (/etc/systemd/system/sasc-ng.service; enabled)
Active: failed (Result: exit-code) since Tue, 2012-11-27 21:10:47 CET; 1min 45s ago
Process: 913 ExecStart=/usr/sbin/sasc-ng -D -j 0:3 -j 1:4 -j 2:5" -b 16M --sid-allpid --sid-nocache --cam-budget --cam-dir=/etc/camdir -l /home/mythtv/logs/sasc-ng.log (code=exited, status=0/SUCCESS)
Main PID: 921 (code=exited, status=255)
CGroup: name=systemd:/system/sasc-ng.service
Nov 27 21:10:39 server sasc-ng[921]: [921] [general.error] failed open /etc...ry
Nov 27 21:10:40 server sasc-ng[921]: [921] [general.error] failed open /etc...ry
Nov 27 21:10:40 server sasc-ng[921]: [921] [general.error] failed open /etc...ry
Nov 27 21:10:40 server sasc-ng[921]: [921] [general.info] loading cardclien...nf
Nov 27 21:10:42 server sasc-ng[921]: [1062] Netwatcher thread started (pid=...6)
Nov 27 21:10:42 server sasc-ng[921]: [921] [general.error] no keys loaded f...m!
Nov 27 21:10:46 server sasc-ng[921]: [1098] SC housekeeper thread started (...2)
Nov 27 21:10:47 server sasc-ng[921]: [1062] Netwatcher thread ended (pid=92...6)
Nov 27 21:10:47 server systemd[1]: sasc-ng.service: main process exited, co.../a
Nov 27 21:10:47 server systemd[1]: Unit sasc-ng.service entered failed state
[mythtv@server ~]$ sudo systemctl status sasc-ng.service
sasc-ng.service - Sasc-ng
Loaded: loaded (/etc/systemd/system/sasc-ng.service; enabled)
Active: failed (Result: exit-code) since Tue, 2012-11-27 21:10:47 CET; 2min 9s ago
Process: 913 ExecStart=/usr/sbin/sasc-ng -D -j 0:3 -j 1:4 -j 2:5" -b 16M --sid-allpid --sid-nocache --cam-budget --cam-dir=/etc/camdir -l /home/mythtv/logs/sasc-ng.log (code=exited, status=0/SUCCESS)
Main PID: 921 (code=exited, status=255)
CGroup: name=systemd:/system/sasc-ng.service
Nov 27 21:10:39 server sasc-ng[921]: [921] [general.error] failed open /etc/camdir/smartcard.conf: No such file or directory
Nov 27 21:10:40 server sasc-ng[921]: [921] [general.error] failed open /etc/camdir/cardslot.conf: No such file or directory
Nov 27 21:10:40 server sasc-ng[921]: [921] [general.error] failed open /etc/camdir/SoftCam.Key: No such file or directory
Nov 27 21:10:40 server sasc-ng[921]: [921] [general.info] loading cardclient config from /etc/camdir/cardclient.conf
Nov 27 21:10:42 server sasc-ng[921]: [1062] Netwatcher thread started (pid=921, tid=140074379712256)
Nov 27 21:10:42 server sasc-ng[921]: [921] [general.error] no keys loaded for softcam!
Nov 27 21:10:46 server sasc-ng[921]: [1098] SC housekeeper thread started (pid=921, tid=140074371319552)
Nov 27 21:10:47 server sasc-ng[921]: [1062] Netwatcher thread ended (pid=921, tid=140074379712256)
Nov 27 21:10:47 server systemd[1]: sasc-ng.service: main process exited, code=exited, status=255/n/a
Nov 27 21:10:47 server systemd[1]: Unit sasc-ng.service entered failed state
[mythtv@server ~]$
Any ideas?
Last edited by wdirksen (2012-12-10 19:54:43)After some head scratching it seems to be all good now. Considering there have been no replies to this I've come to wonder if I might be the only one with this issue. I could get it working somewhat using service files but never ideal, ex. sasc-ng only using a few of the entitlements from oscam because it started too quick etc. Anyway this might help a few and I'm hoping the linux savvy who find what I'm writing here painfully newbie like or flawed will reply and educate me a bit if what's provided here needs some sharpening up:
1) Systemd was confusing the sasc-ng binary shorthand arguments with Linux init arguments and a few were misinterpreted if they were not nested into the environment specifiers. So the -l (log) was causing problems and -b (buffer) wasn't loading. To be safe I'm using only the sasc-ng longhand specifiers from now on (two "--" and more verbose) so that they can never be confused even if safely nested in an environment parameter. That means that /etc/conf.d/sasc-ng will also need to be changed to reflect this. I also decided to simplify the LOGFILE parameter to include the whole argument syntax.
2) Oscam.service needs to be initiated with oneshot and RemainAfterExit=yes to make sure the delay (15 seconds in my config) gets counted out before sasc-ng initiates.
[EDIT 12/12/2012: Initially I had a second TimeoutSec=2 after ExecStart in sasc-ng.service but this had no function. Turns out that it almost always does work without this delay but not always with my setup. Adding TimeoutSec=2 to mythbackend.service prior to ExecStart command does function and makes things init more consistant]
sasc-ng.service
[Unit]
Description=Sasc-ng
After=oscam.service
[Service]
Type=simple
EnvironmentFile=/etc/conf.d/sasc-ng
ExecStartPre=/sbin/modprobe dvbloopback $DVBLOOPBACK_ARGS
TimeoutSec=2
ExecStart=/usr/sbin/sasc-ng $SASCNG_ARGS --cam-dir $CAMDIR --log $LOGFILE
[Install]
WantedBy=multi-user.target
/etc/conf.d/sasc-ng
SASCNG_ARGS="--join 0:3 --join 1:4 --join 2:5 --buffer 16M --sid-allpid --sid-nocache --cam-budget"
DVBLOOPBACK_ARGS="num_adapters=3"
LOGFILE="/home/mythtv/logs/sasc-ng.log"
CAMDIR="/etc/camdir"
oscam.service
[Unit]
Description=An Open Source Conditional Access Module software
After=network.target
[Service]
Type=oneshot
EnvironmentFile=/etc/conf.d/oscam
ExecStart=/usr/bin/oscam $OSCAM_ARGS
TimeoutSec=15
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
mythbackend.service
[Unit]
Description=MythTV_backend
After=sasc-ng.service
[Service]
Type=simple
TimeoutSec=2
Environment=MYTHCONFDIR=/etc/conf.d/mythbackend
Environment=HOME=/usr/share/mythtv
User=mythtv
ExecStart=/usr/bin/mythbackend --logpath /var/log/mythtv
[Install]
WantedBy=multi-user.target
I will make the related changes to the open-sasc-ng AUR package which I currently maintain
Last edited by wdirksen (2012-12-23 14:40:43) -
[SOLVED]PulseAudio systemd daemon doesn't work
Hello.
I try to set PulseAudio as systemd service, but I'm still getting errors.
Here is how my .service file looks like.
$cat /usr/lib/systemd/system/[email protected]
[Unit]
Description=PulseAudio Sound System
Before=sound.target
[Service]
BusName=org.pulseaudio.Server
ExecStart=/usr/bin/pulseaudio --start
Restart=always
User=%1
[Install]
WantedBy=multi-user.target
And here is what I get (dan is my username):
$ systemctl start [email protected]
$ systemctl status [email protected]
[email protected] - PulseAudio Sound System
Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled)
Active: failed (Result: start-limit) since Mon 2013-09-16 11:42:46 CEST; 2s ago
Process: 1407 ExecStart=/usr/bin/pulseaudio --start (code=exited, status=217/USER)
Sep 16 11:42:45 530uarch systemd[1]: Failed to start PulseAudio Sound System.
Sep 16 11:42:45 530uarch systemd[1]: Unit [email protected] entered failed state.
Sep 16 11:42:46 530uarch systemd[1]: [email protected] holdoff time over, scheduling restart.
Sep 16 11:42:46 530uarch systemd[1]: Stopping PulseAudio Sound System...
Sep 16 11:42:46 530uarch systemd[1]: Starting PulseAudio Sound System...
Sep 16 11:42:46 530uarch systemd[1]: [email protected] start request repeated too quickly, refusing to start.
Sep 16 11:42:46 530uarch systemd[1]: Failed to start PulseAudio Sound System.
Sep 16 11:42:46 530uarch systemd[1]: Unit [email protected] entered failed state.
Thank you
Last edited by Kotrfa (2013-09-16 17:02:35)Ahhh. Thank you for that. I will add it to my awesome autostart script.
Solved
Last edited by Kotrfa (2013-09-16 17:03:20) -
[SOLVED] Getting my systemd user service to talk to dbus
I'm currently trying to set up a nice email workflow with mbsync, msmtp and notmuch.
My passwords are saved in the Gnome keyring "login", and I've configured mbsync to use secret-tool to retrieve them. Unfortunately when secret-tool is invoked from this systemd user service there is an error when it in turn tries to call dbus-launch.
Here is the error:
$ systemctl --user status -l mbsync.service
● mbsync.service - Synchronise IMAP folders
Loaded: loaded (/home/leo/.config/systemd/user/mbsync.service; static; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2015-05-10 20:10:56 BST; 17min ago
Process: 3691 ExecStart=/usr/bin/mbsync -a (code=exited, status=1/FAILURE)
Main PID: 3691 (code=exited, status=1/FAILURE)
May 10 20:10:55 think3 mbsync[3691]: (secret-tool:3696): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
May 10 20:10:55 think3 mbsync[3691]: secret-tool: Error spawning command line 'dbus-launch --autolaunch=388eb9d3cc5542d5922d60c8f9605b31 --binary-syntax --close-stderr': Child process exited with code 1
May 10 20:10:55 think3 mbsync[3691]: Skipping account ymail, password command exited with status 1
May 10 20:10:56 think3 mbsync[3691]: (secret-tool:3698): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
May 10 20:10:56 think3 mbsync[3691]: secret-tool: Error spawning command line 'dbus-launch --autolaunch=388eb9d3cc5542d5922d60c8f9605b31 --binary-syntax --close-stderr': Child process exited with code 1
May 10 20:10:56 think3 mbsync[3691]: Skipping account gmail, password command exited with status 1
May 10 20:10:56 think3 systemd[716]: mbsync.service: main process exited, code=exited, status=1/FAILURE
May 10 20:10:56 think3 systemd[716]: Failed to start Synchronise IMAP folders.
May 10 20:10:56 think3 systemd[716]: Unit mbsync.service entered failed state.
May 10 20:10:56 think3 systemd[716]: mbsync.service failed.
The file mbsync.service is simply
[Unit]
Description=Synchronise IMAP folders
Wants=network-online.target
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/mbsync -a
Any ideas how I can use secret-tool from within a systemd user service? The Wiki includes some information about DBus and systemd here but it looks a little outdated...
Last edited by curiousleo (2015-05-22 22:02:33)barbae wrote:Please could you post the output of 'journalctl -b' just after user login into gnome through gdm?
Sure thing. Here it is (I've cut out some stuff that obviously had nothing to do with the problem at hand):
May 17 17:17:11 think3 systemd[1]: systemd 219 running in system mode. (+PAM -AUDIT -SELINUX -IMA -APPARMOR +SMACK -SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD +IDN)
May 17 17:17:11 think3 systemd[1]: Created slice Root Slice.
May 17 17:17:11 think3 systemd[1]: Starting Root Slice.
May 17 17:17:11 think3 systemd[1]: Created slice System Slice.
May 17 17:17:11 think3 systemd[1]: Starting System Slice.
May 17 17:17:11 think3 systemd[1]: Started Forward Password Requests to Wall Directory Watch.
May 17 17:17:11 think3 systemd[1]: Starting Forward Password Requests to Wall Directory Watch.
May 17 17:17:11 think3 systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
May 17 17:17:11 think3 systemd[1]: Starting Dispatch Password Requests to Console Directory Watch.
May 17 17:17:11 think3 systemd[1]: Reached target Login Prompts.
May 17 17:17:11 think3 systemd[1]: Starting Login Prompts.
May 17 17:17:11 think3 systemd[1]: Created slice User and Session Slice.
May 17 17:17:11 think3 systemd[1]: Starting User and Session Slice.
May 17 17:17:11 think3 systemd[1]: Reached target Slices.
May 17 17:17:11 think3 systemd[1]: Starting Slices.
May 17 17:17:11 think3 systemd[1]: Started Create System Users.
May 17 17:17:11 think3 systemd[1]: Created slice system-systemd\x2drfkill.slice.
May 17 17:17:11 think3 systemd[1]: Starting system-systemd\x2drfkill.slice.
May 17 17:17:11 think3 systemd[1]: Started Commit a transient machine-id on disk.
May 17 17:17:11 think3 systemd[1]: Started Daily verification of password and group files.
May 17 17:17:11 think3 systemd[1]: Starting Daily verification of password and group files.
May 17 17:17:11 think3 systemd[1]: Listening on D-Bus System Message Bus Socket.
May 17 17:17:11 think3 systemd[1]: Starting D-Bus System Message Bus Socket.
May 17 17:17:11 think3 systemd[1]: Reached target Sockets.
May 17 17:17:11 think3 systemd[1]: Starting Sockets.
May 17 17:17:11 think3 systemd[1]: Reached target Basic System.
May 17 17:17:11 think3 systemd[1]: Starting Basic System.
May 17 17:17:11 think3 systemd[1]: Starting Login Service...
May 17 17:17:11 think3 systemd[1]: Starting Permit User Sessions...
May 17 17:17:11 think3 systemd[1]: Started D-Bus System Message Bus.
May 17 17:17:11 think3 systemd[1]: Starting D-Bus System Message Bus...
May 17 17:17:11 think3 systemd[1]: Reached target Timers.
May 17 17:17:11 think3 systemd[1]: Starting Timers.
May 17 17:17:11 think3 systemd[1]: Started Permit User Sessions.
May 17 17:17:11 think3 systemd[1]: Starting GNOME Display Manager...
May 17 17:17:11 think3 systemd[1]: Started Login Service.
May 17 17:17:12 think3 systemd[1]: Started GNOME Display Manager.
May 17 17:17:12 think3 systemd[1]: Reached target Multi-User System.
May 17 17:17:12 think3 systemd[1]: Starting Multi-User System.
May 17 17:17:12 think3 systemd[1]: Reached target Graphical Interface.
May 17 17:17:12 think3 systemd[1]: Starting Graphical Interface.
May 17 17:17:12 think3 systemd-logind[293]: New seat seat0.
May 17 17:17:12 think3 dbus[301]: [system] Activating via systemd: service name='org.freedesktop.Accounts' unit='accounts-daemon.service'
May 17 17:17:12 think3 systemd[1]: Reached target User and Group Name Lookups.
May 17 17:17:12 think3 systemd[1]: Starting User and Group Name Lookups.
May 17 17:17:12 think3 systemd[1]: Starting Accounts Service...
May 17 17:17:13 think3 dbus[301]: [system] Activating via systemd: service name='org.freedesktop.PolicyKit1' unit='polkit.service'
May 17 17:17:13 think3 systemd[1]: Starting Authorization Manager...
May 17 17:17:13 think3 polkitd[443]: Started polkitd version 0.112
May 17 17:17:13 think3 polkitd[443]: Loading rules from directory /etc/polkit-1/rules.d
May 17 17:17:13 think3 polkitd[443]: Loading rules from directory /usr/share/polkit-1/rules.d
May 17 17:17:13 think3 polkitd[443]: Finished loading, compiling and executing 3 rules
May 17 17:17:13 think3 dbus[301]: [system] Successfully activated service 'org.freedesktop.PolicyKit1'
May 17 17:17:13 think3 polkitd[443]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
May 17 17:17:13 think3 systemd[1]: Started Authorization Manager.
May 17 17:17:13 think3 accounts-daemon[436]: started daemon version 0.6.40
May 17 17:17:13 think3 dbus[301]: [system] Successfully activated service 'org.freedesktop.Accounts'
May 17 17:17:13 think3 systemd[1]: Started Accounts Service.
May 17 17:17:13 think3 systemd[1]: Created slice user-120.slice.
May 17 17:17:13 think3 systemd[1]: Starting user-120.slice.
May 17 17:17:13 think3 systemd[1]: Starting User Manager for UID 120...
May 17 17:17:13 think3 systemd-logind[293]: New session c1 of user gdm.
May 17 17:17:13 think3 systemd[1]: Started Session c1 of user gdm.
May 17 17:17:13 think3 systemd[1]: Starting Session c1 of user gdm.
May 17 17:17:13 think3 systemd[454]: pam_unix(systemd-user:session): session opened for user gdm by (uid=0)
May 17 17:17:13 think3 systemd[454]: Unit type .busname is not supported on this system.
May 17 17:17:13 think3 systemd[454]: Reached target Paths.
May 17 17:17:13 think3 systemd[454]: Starting Paths.
May 17 17:17:13 think3 systemd[454]: Reached target Timers.
May 17 17:17:13 think3 systemd[454]: Starting Timers.
May 17 17:17:13 think3 systemd[454]: Reached target Sockets.
May 17 17:17:13 think3 systemd[454]: Starting Sockets.
May 17 17:17:13 think3 systemd[454]: Reached target Basic System.
May 17 17:17:13 think3 systemd[454]: Starting Basic System.
May 17 17:17:13 think3 systemd[454]: Reached target Default.
May 17 17:17:13 think3 systemd[454]: Startup finished in 3ms.
May 17 17:17:13 think3 systemd[454]: Starting Default.
May 17 17:17:13 think3 systemd[1]: Started User Manager for UID 120.
May 17 17:17:13 think3 gnome-session[460]: glamor: EGL version 1.4 (DRI2):
May 17 17:17:13 think3 org.a11y.Bus[459]: Activating service name='org.a11y.atspi.Registry'
May 17 17:17:13 think3 org.a11y.Bus[459]: Successfully activated service 'org.a11y.atspi.Registry'
May 17 17:17:13 think3 org.a11y.atspi.Registry[518]: SpiRegistry daemon is running with well-known name - org.a11y.atspi.Registry
May 17 17:17:14 think3 polkitd[443]: Registered Authentication Agent for unix-session:c1 (system bus name :1.9 [gnome-shell --mode=gdm --wayland --display-server], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_GB.utf8)
May 17 17:17:18 think3 gdm-password][674]: pam_unix(gdm-password:session): session opened for user leo by (uid=0)
May 17 17:17:18 think3 systemd[1]: Created slice user-1000.slice.
May 17 17:17:18 think3 systemd[1]: Starting user-1000.slice.
May 17 17:17:18 think3 systemd[1]: Starting User Manager for UID 1000...
May 17 17:17:18 think3 systemd[1]: Started Session c2 of user leo.
May 17 17:17:18 think3 systemd-logind[293]: New session c2 of user leo.
May 17 17:17:18 think3 systemd[1]: Starting Session c2 of user leo.
May 17 17:17:18 think3 systemd[717]: pam_unix(systemd-user:session): session opened for user leo by (uid=0)
May 17 17:17:18 think3 systemd[717]: Unit type .busname is not supported on this system.
May 17 17:17:18 think3 systemd[717]: Started Synchronise e-mails and create database dump once a day.
May 17 17:17:18 think3 systemd[717]: Starting Synchronise e-mails and create database dump once a day.
May 17 17:17:18 think3 systemd[717]: Reached target default.target.
May 17 17:17:18 think3 systemd[717]: Startup finished in 13ms.
May 17 17:17:18 think3 systemd[717]: Starting default.target.
May 17 17:17:18 think3 /usr/lib/gdm/gdm-x-session[725]: /etc/gdm/Xsession: Beginning session setup...
May 17 17:17:18 think3 /usr/lib/gdm/gdm-x-session[725]: localuser:leo being added to access control list
May 17 17:17:18 think3 /usr/lib/gdm/gdm-x-session[725]: /etc/gdm/Xsession: Setup done, will execute: /usr/bin/ssh-agent -- gnome-session
May 17 17:17:18 think3 /usr/lib/gdm/gdm-x-session[725]: Activating service name='org.a11y.Bus'
May 17 17:17:19 think3 /usr/lib/gdm/gdm-x-session[725]: Successfully activated service 'org.a11y.Bus'
May 17 17:17:19 think3 org.a11y.Bus[732]: Activating service name='org.a11y.atspi.Registry'
May 17 17:17:19 think3 org.a11y.Bus[732]: Successfully activated service 'org.a11y.atspi.Registry'
May 17 17:17:19 think3 org.a11y.atspi.Registry[756]: SpiRegistry daemon is running with well-known name - org.a11y.atspi.Registry
May 17 17:17:19 think3 gnome-session[734]: SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
May 17 17:17:19 think3 gnome-session[734]: SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
May 17 17:17:19 think3 gnome-session[734]: GPG_AGENT_INFO=/run/user/1000/keyring/gpg:0:1
May 17 17:17:20 think3 polkitd[443]: Registered Authentication Agent for unix-session:c2 (system bus name :1.43 [/usr/bin/gnome-shell], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_GB.utf8)
May 17 17:17:20 think3 gnome-session[734]: Entering running state
May 17 17:17:21 think3 gnome-shell[804]: GNOME Shell started at Sun May 17 2015 17:17:20 GMT+0100 (BST)
May 17 17:17:52 think3 /usr/lib/gdm/gdm-x-session[725]: Activating service name='org.gnome.seahorse.Application'
May 17 17:17:52 think3 /usr/lib/gdm/gdm-x-session[725]: Successfully activated service 'org.gnome.seahorse.Application'
May 17 17:20:48 think3 /usr/lib/gdm/gdm-x-session[725]: Activating service name='org.gnome.seahorse.Application'
May 17 17:20:48 think3 /usr/lib/gdm/gdm-x-session[725]: Successfully activated service 'org.gnome.seahorse.Application' -
[solved] systemd service files don't allow quotes
Why is it not possible to use quotes in
ExecStart=
section of systemd service files?
For example, I can't use service file like this
[Unit]
Description=Pacman mirrorlist update
[Service]
Type=oneshot
ExecStart=wget -O /etc/pacman.d/mirrorlist.backup "https://www.archlinux.org/mirrorlist/?country=DE&country=NL&country=PL&protocol=http&ip_version=4" && cp /etc/pacman.d/mirrorlist.backup /etc/pacman.d/mirrorlist && reflector --verbose -l 50 -p http --sort rate --save /etc/pacman.d/mirrorlist
because systemd will not run it because of presence of quotes:
Feb 26 08:48:36 nanoBox systemd[1]: [/etc/systemd/system/reflector.service:7] Executable path is not absolute, ignoring: wget -O /etc/pacman.d/mirrorlist.backup "URL=http...
Feb 26 08:48:36 nanoBox systemd[1]: reflector.service lacks both ExecStart= and ExecStop= setting. Refusing.
I can remove quotes and then the service will run, but the URL parsed to the command will be cut in half, ie it will stop on the first "&" sign and only DE mirrors will be probed.
Is there some way around it other than creating a separate executable file and calling it from the service? I don't want to multiply unnecessary files if there's way around it.
Last edited by Lockheed (2015-02-26 09:37:25)Lockheed wrote:
Raynman wrote:"from command line" is you feeding a (command) string to a shell. Your assumption is that systemd will treat whatever you put in ExecStart exactly the same as your shell would.
Not "is" but "was". Disappearance of that assumption was precisely the reason of starting this thread.
I had to read this a few times, but I think you mean it as follows. You assumed you could copy from the shell to the service file and it would work the same way. Then you got an error (about the abolute path) so that assumption "disappeared". So far so good. But you didn't exactly figure out what was different, you formed a new assumption and based your thread on that:
"systemd service files don't allow quotes" (title)
"Why is it not possible to use quotes in ExecStart= section of systemd service files"
"because systemd will not run it because of presence of quotes:"
Like frank604 says, quotes were never the issue (in fact, they are one of the few things with special meaning for both the shell and systemd), yet you still seem to think they were:
Lockheed wrote wrote:The actual wrong assumption on my part was that this command would run without quotes as service. It does not.
It is a shame you only quote the first part of my last reply and ignore the questions in the second part. You did almost the same thing with my reply before that and I suspect you also didn't read the man page I mentioned the first time. You basically give me the impression that you think you have it all figured out (even though you come here looking for help) and my follow-up questions aren't worth your time. That usually makes me "move along" pretty quickly, but I'm trying one last time, because even though "The service now works", I'd like to see that you actually understand why it didn't work before.
The only thing you really answered was "Changing paths to absolute made no difference.", but that shouldn't be, so when you mentioned empirical evidence, I basically repeated the question asking for some of this evidence (as in exact error messages for one or more modified ExecStart lines).
When I take your service file and give wget an absolute path, systemd happily executes wget, but then wget complains because it gets "&&" and "cp" and "--save" etc. as arguments. Those errors are what I see in systemctl status/journal, no longer anything about an absolute path. This is because "&&" has no special meaning. You can use semicolons (";") to separate commands instead (explained in the man page section on command lines) or multiple ExecStart lines like frank604 used (which is cleaner IMO). -
[SOLVED] Trying to write HLDS systemd service file
Hey,
I want to write a systemd service file for my HLDS AUR package: https://aur.archlinux.org/packages/hlds/
My environment file looks like this:
HLDS_USER=root
HLDS_WORKINGDIR=/opt/hlds
HLDS_PARAMS="-game cstrike"
HLDS_LOGFILE=/var/log/hlds_cstrike
The service file like this:
After=network.target
[Service]
#EnvironmentFile=/etc/conf.d/hlds
#User=${HLDS_USER}
#WorkingDirectory=${HLDS_WORKINGDIR}
ExecStart=/opt/hlds/hlds_run -game cstrike
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
But systemd fails to start the service:
hlds.service - Half-Life Dedicated Server
Loaded: loaded (/usr/lib/systemd/system/hlds.service; disabled)
Active: failed (Result: exit-code) since Thu, 2013-01-03 06:20:49 CET; 2s ago
Process: 567 ExecStop=/bin/kill $MAINPID (code=exited, status=1/FAILURE)
Process: 564 ExecStart=/opt/hlds/hlds_run -game cstrike (code=killed, signal=INT)
CGroup: name=systemd:/system/hlds.service
Jan 03 06:20:49 playground systemd[1]: Starting Half-Life Dedicated Server...
Jan 03 06:20:49 playground systemd[1]: Started Half-Life Dedicated Server.
Jan 03 06:20:49 playground hlds_run[564]: Invalid game type 'cstrike' sepecified.
Jan 03 06:20:49 playground hlds_run[564]: Thu Jan 3 06:20:49 CET 2013: Server Failed
Jan 03 06:20:49 playground kill[567]: usage: kill [ -s signal | -p ] [ -a ] pid ...
Jan 03 06:20:49 playground kill[567]: kill -l [ signal ]
Jan 03 06:20:49 playground systemd[1]: Unit hlds.service entered failed state
Running
/opt/hlds/hlds_run -game cstrike
manually works quote well
Someone knows how to proceed? Thanks
Last edited by onny (2013-01-03 05:43:49)Solved. It didn't recognized the workingdir correctly ...
Maybe you are looking for
-
Windows Vista Beta 2 and Soundblaster PCI
When Windows Vista Beta 2 was first installed, it installed a generic driver for the PCI52 sound card. However, since the driver is generic It has limited functionality. I am not able to enable the quadraphonic option in Control Panel under the "Audi
-
Cash forecasting - customer payment profiles
Hello Gurus, I am trying to understand customer payment profile concept. My requirement is to perform cash forecasting using customer payment profiles. Anything on this topic would be of great help. Thanks.
-
Hi, I want to increment the vertical line dynamically according to the line items in SAP SCRIPT. How will I do it?? Pooja
-
Compatible USB hub with external hard drive
Does anyone know of a USB hub that will be compatible with a USB powered external hard drive? (Buffalo) Thanks Paul
-
I don't have a home telephone for activation
I don't have a home telephone. The bt smart talk app has to do a check by calling the home phone number and providing an activation code. Is there another way to activate the app without needing a call to my house?